Controller如何获取参数
1利用原有的Servlet方法,使用HttpServletRequest
2利用@RequestParam注解 @RequestParam("username")String name,当username在request中不存在,会抛出异常,可以使用@RequestParam(value="username" required=false default=" 默认值")这样请求有值就取,没值就不取
3使用实体类封装
--写一个实体类,然后添加setter,getter方法
--实体类的setter方法与请求的参数保持一致
Controller返回参数值
方式一:
Controller返回类型为ModelAndView =================》了解
Map
map.put(String,Object);
return ModelAndView(String jsp名,map);
方式二:
***在Controller方法中加Model参数如:===================》建议使用
public String checkLogin(Model model){
model.addAttribute(key,value);
return "ok";
}
方式三:
利用@ModelAttribute注解,可以将方法参数放入Model中
@ModelAttribute("name")String username 将username值放入Model,
key为name,等价于model.addAttribute("name",username);
@ModelAttribute()的另一种用法,放在方法上面
程序已进入controller首先执行@ModelAttribute()再执行@RequestMapping
@ModelAttribute("msg") //相当于model.addAttribute("msg",findMsg())
public String findMsg(){
return "你好";
}
@RequestMapping()
public String Controller(){ }
--------------------------------------------------------------------------
向Session中存储数据
a 利用Servlet方案,使用HttpSession参数
b 利用@SessionAttribute(“name”)标记,在类定义前使用,含义是将Model中存储的key为name的信息,由Request范围转换为Session范围,
在使用前需要在Model中存储了name一组值才可以
@SessionAttribute("name") @SessionAttribute({"name","age"})
public class LoginController(){
public String(){
model.addAttribute("name",Object);
}
}