controller方法的返回值类型
- 1.ModelAndView类型:当前对象为我们封装了数据和响应的页面
@RequestMapping("/getitems")
public ModelAndView getItems() throws Exception{
List<ItemsCustom> itemsList = itemsService.queryitems(null);
ModelAndView mav = new ModelAndView();
mav.addObject("itemsList",itemsList);
mav.setViewName("itemsList");
return mav;
}
- 2.String:方法返回String代表当前方法处理完成后转向的逻辑视图(转向的jsp页面)
@RequestMapping("/queryByid")
public String selectbyidItems(Integer id,Model model) throws Exception{
Items items = itemsService.selectByPrimaryKey(id);
//通过model对象把数据封装相当于把数据保存到request对象域中
model.addAttribute("items", items);
return "items/editItems";
}
- 3.void:方法无返回值 在方法的参数列表中提供springmvc默认支持的参数HttpServletRequest request,HttpServletResponse response 类似于原始的servlet
参数绑定
方法中默认支持的参数
a.Model
b.request
c.response
d.基本类型的参数
e.对象类型的参数
f.集合类型的参数
页面请求提交过来的参数会自动绑定到controller方法的形参上 但是需要遵循一定的原则的提交的属性名和形参名必须一致才能绑定
如果方法的形参是对象类型 保证提交的属性名和参数对象的属性名一致 就能实现自动绑定
如果一定要用别的形参名,需要使用@RequestParam注解
@RequestParam(value=“id”,required=true,defaultValue="") Integer items_id,
value属性可以实现提交的属性名和形参任意名称绑定
required 当前这个参数是必须传递的
defaultValue 默认值
@RequestMapping("/queryByid")
public String selectbyidItems(@RequestParam(value="id") Integer items_id,Model model) throws Exception{
Items items = itemsService.selectByPrimaryKey(items_id);
//通过model对象把数据封装 相当于把数据保存到request对象域中
model.addAttribute("items", items);
return "items/editItems";
}
还可以对提交的方式进行设置(post,get)
@RequestMapping(value="/findupdateitems",method={RequestMethod.POST,RequestMethod.GET})
@RequestMapping(value="/findupdateitems",method={RequestMethod.POST,RequestMethod.GET})
public void findupdateitems(HttpServletRequest request,HttpServletResponse response) throws Exception{
Items items = itemsService.findupdateitems(1);
}
转发(forward):首先浏览器的地址不发生改变 并且request对象中的值是可以共享(转向到新的地址 新的地址可以获取request保存的值)
重定向(redirect):首先浏览器的地址发生改变 并且request对象中的值不能共享(转向到新的地址 新的地址不可以获取request保存的值)