@RequestMapping(value="/show3", method = RequestMethod.GET)
public ModelAndView getShow3(People people){
System.out.println("show3");
ModelAndView modelAndView = new ModelAndView();
this.people = people;
modelAndView.setViewName("json");
modelAndView.addObject(people);
modelAndView.addObject("json","11");
return modelAndView;


这是请求的代码springmvcxmljson

解决方案 »

  1.   


    这是xml返回的结果这是json返回的结果
      

  2.   

    xml返回的结果中并没有包含json这个属性,而json返回的结果中却有这个,不知道问题出在了哪里。
      

  3.   

    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="order" value="1" />
        <property name="contentNegotiationManager">
        <bean class="org.springframework.web.accept.ContentNegotiationManager">
            <constructor-arg>
                <bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
                <constructor-arg>
                    <map>              
                        <entry key="json" value="application/json;charset=utf-8"/>            
                        <entry key="xml" value="application/xml;charset=utf-8"/>            
                    </map>
                </constructor-arg>
                </bean>
            </constructor-arg>
        </bean>
        </property>
        <property name="defaultViews">
    <list>
    <!-- JSON View -->
    <bean  class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" >
            </bean>
            
                   <bean  class="org.springframework.web.servlet.view.xml.MarshallingView">
        <constructor-arg>
            <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
                <property name="classesToBeBound">
                    <array>
                        <value>com.test.controller.People</value>
                        
                    </array>
                </property>
            </bean>
        </constructor-arg>
    </bean>
          </list>
            </property></bean>
            
    这是配置文件关于返回类型的
      

  4.   

     <entry key="json" value="application/json;charset=utf-8"/>   
      

  5.   

    这里是不是对json没有特殊处理,过滤字段,所以json视图都显示出来了,而xml把json过滤掉了呢
      

  6.   

    其实我就是想要json的那种答案,因为他们共同返回的都是People类的,然后我就想多加一个东西,看看他们的返回结果,结果xml 不能返回增加的东西,而json却返回了,对了People类
    @Component
    @XmlRootElement(name="people")
    public class People {

    private int id;

    private String username;

    private String password;
    @XmlElement
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    @XmlElement
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    @XmlElement
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }

    }
      

  7.   

    自己好好看看这句,注销看看还有没有modelAndView.addObject("json","11");
      

  8.   

    嗯,是我说的不清楚,不好意思,我想xml返回的值中也加上json这个属性
    7楼我有说的,
      

  9.   

    那你在people中加一个属性不就行了吗?
      

  10.   

    http://www.cnblogs.com/hoojo/archive/2011/04/29/2032571.html
    参考下这篇文章
    考虑使用xstream来转化xml
      

  11.   

    那如果想要和people节点同辈的话 加属性就不行了吧
      

  12.   

    xml根节点只有一个,要考虑一个比较可行的数据结构,返回此结构的xml形式
      

  13.   

    万一这个属性不属于People呢?或者是很多属性,
    额我试了一种办法 就是你说的加属性,我在People类里加了一个User 类型的属性,
    传值成功了网址输入太长了,还有有没有不通过设置属性传的办法啊
      

  14.   

    模型要怎么弄?是modelAndView.setViewName();吗?
    感觉是13楼说的问题,应该往哪里添节点
      

  15.   

    嗯,就想和别的系统通讯,采用xml格式传送,双发要约定数据结构,定义根元素,子元素等等