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:你的项目地址}

http://localhost:8080/xxx/test

http://localhost:8080/xxx/xml

http://localhost:8080/xxx/str

原文地址:https://www.cnblogs.com/keeley/p/3467641.html