springmvc梳理9-----用注解来进行数据绑定

与前面一章有着异曲同工之处,只不过注解更省时。

在前面也提到过一些注解方式,重复的就不提了。

@RequestParam:略


@PathVariable绑定URI模板变量值,需要注意的是:


URI模板变量和请求参数同名时,URI模板变量具有高优先权。


@ModelAttribute,起到将参数绑定到命令对象,并且将此对象给视图页面使用:

/**
	 * @ModelAttribute帮助我们绑定的命令对象以“user”为名称添加到模型对象中供视图页面展示使用
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/test1")
	public String test1(@ModelAttribute("user") User user){
		user.setName("sun");
		return "/test";
	}

@RequestHeader:绑定请求头数据:

/**
	 * 请求头数据的绑定
	 * 
	 * @param userAgent 浏览器
	 * @param accepts 请求头的信息
	 * @return
	 * 
	 * 我这边打印出来的结果:
	 * Mozilla/5.0 (Windows NT 6.1; rv:29.0) Gecko/20100101 Firefox/29.0
	 * text/html
	 */
	@RequestMapping(value="/header")
	public String test(
	       @RequestHeader("User-Agent") String userAgent,
	       @RequestHeader(value="Accept") String[] accepts){
		if(!Strings.isNullOrEmpty(userAgent))System.out.println(userAgent);
		if(accepts.length!=0&&accepts!=null)System.out.println(accepts[0]);
		return "test";
	}

/**
     * 通过SessionStatus的setComplete()方法清除@SessionAttributes指定的会话数据  
     * 
     * @param currentUser
     * @param status
     * @return
     */
    @RequestMapping("/session2")
    public String session(@ModelAttribute("user") User currentUser, SessionStatus status) {  
    	if(true) {
    		status.setComplete();
    	}
    	return "test"; 
    }

/**
	 * @ModelAttribute帮助我们绑定的命令对象以“user”为名称添加到模型对象中供视图页面展示使用
	 * 
	 * @param user
	 * @return
	 */
	@RequestMapping(value = "/test1")
	public String test1(@ModelAttribute("user") User user){
		user.setName("sun");
		return "/test";
	}
	
	
	/**
	 * 请求头数据的绑定
	 * 
	 * @param userAgent 浏览器
	 * @param accepts 请求头的信息
	 * @return
	 * 
	 * 我这边打印出来的结果:
	 * Mozilla/5.0 (Windows NT 6.1; rv:29.0) Gecko/20100101 Firefox/29.0
	 * text/html
	 */
	@RequestMapping(value="/header")
	public String test(
	       @RequestHeader("User-Agent") String userAgent,
	       @RequestHeader(value="Accept") String[] accepts){
		if(!Strings.isNullOrEmpty(userAgent))System.out.println(userAgent);
		if(accepts.length!=0&&accepts!=null)System.out.println(accepts[0]);
		return "test";
	}
	
	/**
	 * @CookieValue用于将请求的Cookie数据映射到功能处理方法的参数上。
	 * 
	 * @param sessionId
	 * @return
	 */
	@RequestMapping(value="/test2")
	public String test2(@CookieValue(value="JSESSIONID", defaultValue="") Cookie sessionId){
		if(sessionId!=null)System.out.println(sessionId.getName());
		return "test";
	}
	


参考涛哥:http://jinnianshilongnian.iteye.com/blog/1705701


你可能感兴趣的:(springmvc梳理9-----用注解来进行数据绑定)