springmvc 通过对象来接收参数,为什么默认会返回该对象?

0.我通过url 请求接口,这里我没有传递参数,但是不影响我的查询.
图片描述

1.我的java代码为:
图片描述

疑问:我在java中返回的时候只有 "state" 和 "data" 两个字段,但是默认给我多返回了一个对象,就是我java接受的那个对象

怀疑:是 ModelAndView 自身默认源码的问题,我去google了一下,但是没有找到我想要的结果

想要效果:去掉默认返回的对象,麻烦大家了.

回答:

我没记错的话 加个@responsebody;而且要是返回自定义的对象用gson转成的json串返回,是不需要框架自带的modelandview对象

回答:

原因:因为默认处理方式是@ModelAttribute
解决:@ResponseBody + 返回要返回的对象
不返回视图的时候忘记ModelAndView

回答:

modelAndView不会加上你的这个参数的, 问题应该出在你的这个默认"querList"view上, 如果想直接返回你想要的效果, 不如返回类型改成map, 加上注解@ResponseBody, 这样就好多了

回答:

我是忘记加@RequestBody也出现问题,现在解决了,解决如下:
原来的代码:

@RequestMapping("login")

public ModelAndView login( UserCriterial userCriterial) {

ModelAndView mv = new ModelAndView();

boolean success = userSerivce.login(userCriterial);

mv.addObject("loginResult", success);

mv.setView(new MappingJackson2JsonView());

return mv;

}

返回的是:

{"userCriterial":{"userName":null,"pwd":null},"loginResult":false}

修改后的代码:

@RequestMapping("login")

public ModelAndView login(@RequestBody UserCriterial userCriterial) {

ModelAndView mv = new ModelAndView();

boolean success = userSerivce.login(userCriterial);

mv.addObject("loginResult", success);

mv.setView(new MappingJackson2JsonView());

return mv;

}

返回的是:

{"loginResult":false}

注:测试返回值不可直接在url打访问后台的url:xxx.do,而应该把对象传过去,否则tomcat会报400错误。

以上是 springmvc 通过对象来接收参数,为什么默认会返回该对象? 的全部内容, 来源链接: utcz.com/p/171260.html

回到顶部