@PathVariable注解
可以非常方便地获取请求URL中的动态参数。只支持一个属性value[String类型]
@RequestHeader注解
可以用于将请求头的信息区数据映射到功能处理方法的参数上。属性有name(别名:value)、required[布尔类型]、defaultValue[String类型]。
@CookieValue注解
可以用于将请求的Cookie数据映射到功能处理方法的参数上。属性有name(别名:value)、required[布尔类型]、defaultValue[String类型]。
案例
项目配置我就不在这里再次描述了,可以翻我之前的文章。
新建一个DataBindingController,用于接受并输出获取的数据。
package com.wen.controller;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;@Controllerpublic class DataBindingController { //静态的日志类LogFactory private static final Log logger = LogFactory.getLog(DataBindingController.class); //测试@PathVariable注解 //该方法映射的请求为http://localhost:8080/.../pathVariableTest/{userId} @RequestMapping(value = "/pathVariableTest/{userId}") public void pathVariableTest(@PathVariable Integer userId){ logger.info("通过@PathVariable获得数据:"+userId); } //测试@RequestHeader注解 //该方法映射的请求为http://localhost:8080/.../requestHeaderTest @RequestMapping(value = "/requestHeaderTest") public void requestHeaderTest( @RequestHeader("User-Agent") String userAgent, @RequestHeader(value="Accept") String[] accepts){ logger.info("通过@requestHeaderTest获得数据:"+userAgent); for (String accept :accepts){ logger.info(accept); } } //测试@CookieValue注解 //该方法映射的请求为http://localhost:8080/.../cookieValueTest @RequestMapping(value = "/cookieValueTest") public void cookieValueTest( @CookieValue(value = "JSESSIONID",defaultValue = "") String sessionId){ logger.info("通过@cookieValueTest获得数据:"+sessionId); }}
index.jsp用于访问Controller中的方法。
<%-- Created by IntelliJ IDEA. User: wen Date: 2019/1/28 Time: 21:28 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>$Title$ 数据绑定测试
测试PathVariable注解 测试RequestHeader注解 测试CookieValue注解
点击超链接测试,控制台就会出现以下数据。