当前位置:  开发笔记 > 编程语言 > 正文

如何在生成RESTful请求时使用Spring 3.0 mvc将XML转换为对象

如何解决《如何在生成RESTful请求时使用Spring3.0mvc将XML转换为对象》经验,为你挑选了1个好方法。

我正在使用Spring 3.0 RC1框架,我目前正在测试Spring mvc.我想使用Spring mvc来处理restful请求.我已经设置了我的控制器来处理URI请求.我正在传递xml请求.所以在控制器上我有一个如下方法:

public void request(RequestObject request) {
  doSomething();
}

我很难将xml转换为RequestObject.我没有看到太多关于此的文档,我想知道是否有人能指出我正确的方向.我猜你必须使用JAXB或其他东西来注释RequestObject,以告诉Spring将xml文件转换为RequestObject,但我不确定.

感谢您所有的帮助!!



1> 小智..:

要将XML转换为Java对象,可以使用Apache Digest http://commons.apache.org/digester/.Spring在内部使用它.

更新 我不知道Spring 3.0中的这个新功能.对不起您的错误行为.我写了快速测试,这是你应该做的.

1)在-servlet.xml中设置ViewResoler和MessageConverter.在我的测试中它看起来像这样

    

    
        
        
    

    
        
    

    
        
          
            
          
        
    

    
      
      
    

2)将XML结构注释添加到Java类中

@XmlRootElement
public class Person {
    private String name;
    private int age;
    private String address;
    /**
     * @return the name
     */
    @XmlElement
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return the age
     */
    @XmlElement
    public int getAge() {
        return age;
    }
    /**
     * @param age the age to set
     */
    public void setAge(int age) {
        this.age = age;
    }
    /**
     * @return the address
     */
    @XmlElement
    public String getAddress() {
        return address;
    }
    /**
     * @param address the address to set
     */
    public void setAddress(String address) {
        this.address = address;
    }
}

3)将映射注释添加到Controller类中

@Controller
public class RestController {

    @RequestMapping(value = "/person", method = RequestMethod.PUT)
    public ModelMap addPerson(@RequestBody Person newPerson) {
        System.out.println("new person: " + newPerson);
        return new ModelMap(newPerson);
    }    
}

希望这会帮助你.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有