Model和ModelAndView的用法
@Controller("Test")
public class Test{
@RequestMapping("")
public ModelAndView one(){`这里写代码片`
ModelAndView mav = new ModelAndView("index");
mav.addObject("name","aaa");
mav.addObject("sex","男");
return mav; //跳转到某一路径下的index.jsp页面
}
@RequestMapping("")
public String two(Model model){
model.addAttribute("name","aaa");
model.addAttribure("sex", "男");
return "index"; ///跳转到某一路径下的index.jsp页面
}
}
通过上面的代码展示就可以基本看出这两者的区别,ModelAndView可以说是视图和模型的结合体,但是在每次使用的时候都需要我们自己创建,并将想要目的页面的逻辑视图名作为参数,并通过addObject()方法添加属性。而Model是每个请求中都会自带的,我们可以通过addAttribute()方法添加属性,在跳转页面时直接返回该页面的逻辑视图名。
@RequestBody使用
把所有的参数当放到@RequestBody所对应的那个参数里,输出的结果类似:
id=ff&status=gg&name=ee
如果你要用到参数,你需要自己处理
对于SpringMVC,它提供了MultiValueMap这个类,我们可以这样来接受参数
@RequestMapping(value = "/", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
@ResponseBody
public Map<String,Object> updateUser(@RequestBody MultiValueMap<String, String> valueMap){
他回把你传过来的参数,放到valueMap里,这个接口继承于Map<K, List<V>>,key就是传过来的参数名,value就是参数值,由于可能存在同名的参数,所以value的类型是List,这样我们就可以很方便的取得参数值了