springMVC 开涛 数据绑定
纸上得来终觉浅,绝知此事要躬行。
一、@requestParam
//使用方法
URL:?username="sfp" test(@RequestParam(value="username",required="true",defaultValue="sun") String username){}
required:
默认为true,url中一定要有这个参数,可以改为false
说明:url有三种形式;有defaultValue的话,required取任何值都不会报错。除此之外这两者没有任何关系
多个值的情况
//使用方法 URL:?username="sfp"&username="wj" test(@RequestParam(value="username",required="true",defaultValue="sun") String[] username){}
二、@PathVariable
//使用方法 url:/users/123/topics/456 @RequestMapping(value="users/{userId}/topics/{topicId}") test(@PathVariable(value="userId") int userId, @PathVariable(value="topicId") int topicId){}
只有value这一个参数
三、@CookieValue
//使用方法 test(@CookieValue("JSESSIONID") String sessionId){} 或者 test(@CookieValue("JSESSIONID") Cookie sessionId){ sessionId.getValue(); }
三个参数同上
四、@RequestHeader
//使用方法 test(@RequestHeader("User-Agent") String userAgent){}
三个参数同上
五、@ModelAttribute
如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法。
1、
//添加用户时 public String add(@ModelAttribute("user") User user){}
URI模板变量如何 通过@ModelAttribute 绑定到请求对象?3.1.1可以,3.0.5不可以。
2、
@ModelAttribute("cityList") public List<String> cityList() { return Arrays.asList("北京", "山东"); }
以上代码 在 执行 功能方法 之前执行,给模型对象加一个cityList的属性,并赋初值。
3、暴露@RequestMapping方法返回值为模式数据,没看懂
4、
模型对象匿名的话,采用如下方式
public String test4(@ModelAttribute UserModel user, Model model) //userModel public @ModelAttribute List<String> test6() //stringList
5、@SessionAttributes
//1、在控制器类头上添加@SessionAttributes注解 @SessionAttributes(value = {"user"}) //① public class SessionAttributeController //2、@ModelAttribute注解的方法进行表单引用对象的创建 @ModelAttribute("user") //② public UserModel initUser() //3、@RequestMapping注解方法的@ModelAttribute注解的参数进行命令对象的绑定 @RequestMapping("/session1") //③ public String session1(@ModelAttribute("user") UserModel user) //4、通过SessionStatus的setComplete()方法清除@SessionAttributes指定的会话数据 @RequestMapping("/session2") //③ public String session(@ModelAttribute("user") UserModel user, SessionStatus status) { if(true) { //④ status.setComplete(); } return "success"; }
还挺麻烦的,孔浩讲得是session.setAttribute(
"loginUser"
, u);开涛讲的是这种?该怎么选?
数据绑定(1):不知道这些对象有什么用,先记录一下
1、
ServletRequest/HttpServletRequest ServletResponse/HttpServletResponse
2、
InputStream/OutputStream Reader/Writer
3、
WebRequest/NativeWebRequest
4、HttpSession
5、Model,Map,ModelMap
6、Errors/BindingResult