Spring MVC提供了 @RequestHeader注解,能夠將請求頭中的變量值映射到控制器的參數中。下面是一個簡單的例子:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
//..
@Controller
public class HelloController {
@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="User-Agent") String userAgent)
//..
}
}
在上面的代碼片段中,定義了一個映射到/hello.htm的hello控制器方法。同時用 @RequestHeader注解將請求頭中”User-Agent“的變量與”userAgent“變量綁定。當此某個請求映射到了此控制器方法,Spring會檢查請求頭中的”User-Agent“變量,並將其與”userAgent“變量綁定。
如果 @RequestHeader綁定的變量,在請求頭中不存在,Spring會將控制器中的參數初始化為null。如果想給控制器參數提供一個默認值,在 @RequestHeader的defaultParameter屬性。
@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="User-Agent", defaultValue="foo") String userAgent)
//..
}
