SpringMVC【二 返回xml,json,string】
一、pom.xml 添加 oxm jackson支持
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>3.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
二、springmvc-xml (名字根据你的web.xml配置的spring过滤器名字来) 添加返回支持
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="stringHttpMessageConverter" /> <ref bean="jsonHttpMessageConverter" /> <ref bean="marshallingHttpMessageConverter" /> </list> </property> </bean> <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter" /> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> <bean id="marshallingHttpMessageConverter" class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> <constructor-arg ref="jaxbMarshaller" /> <property name="supportedMediaTypes" value="application/xml"></property> </bean> <bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="classesToBeBound"> <list> <value>com.keeley.model.User</value> </list> </property> </bean>
三、User类
package com.keeley.model; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User { private int id; private String name; public User() { } public User(int id, String name) { this.id = id; this.name = name; } @XmlElement //默认值 public int getId() { return id; } @XmlAttribute public String getName() { return name; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } }
四、Controller类
package com.keeley.Controller; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.keeley.model.User; @Controller public class TestController { @RequestMapping("/test") public @ResponseBody Map<String,Object> json(){ Map<String,Object> map = new HashMap<String,Object>(); map.put("usernam", "123"); map.put("pwd", "sercir"); map.put("user",new User(1,"123")); return map; } @RequestMapping("/xml") public @ResponseBody User xml(){ return new User(1,"123"); } @RequestMapping("/str") public @ResponseBody String str(){ return "OK"; } }
五、测试访问 {xxx:你的项目地址}