@PathVariable、@RequestHeader以及@CookieValue注解使用说明

@PathVariable举例:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.df.test.pojo.Customer;
import com.df.test.service.ICustomerService;

@Controller
@RequestMapping("/user")
public class UserController {
    @Resource
    private ICustomerService customerService;

    @RequestMapping("/showUser1/{useId}")
    public String toIndex(@PathVariable String useId, Model model) {
        Customer customer = this.customerService.getUserById(Integer.parseInt(useId));
        model.addAttribute("customer", customer);
        return "showUser";
    }
}

假设本项目的名称叫做demo,上述控制器对应请求则是:

http://localhost:8080/demo/user/showUser1/1

该注解可以很方便获取请求URL中的动态参数,@PathVariable只有一个属性value,String类型,表示标定的名称,默认不传递时,绑定为同名的形参。所以上面的核心代码也可以改为:

    @RequestMapping("/showUser1/{useId}")
    public String toIndex(@PathVariable(value = "useId") String useId1, Model model) {
        Customer customer = this.customerService.getUserById(Integer.parseInt(useId1));
        model.addAttribute("customer", customer);
        return "showUser";
    }

@RequestHeader以及@CookieValue这两个注解用法类似,属性也相同。

  • @RequestHeader注解主要是将请求头的信息区数据,映射到功能处理方法的参数上。
  • @CookieValue注解主要是将请求的Cookie数据,映射到功能处理方法的参数上。

属性说明:

  • value属性,指定请求头绑定的名称。String类型。
  • required属性,参数是否必须。boolean类型。
  • defaultValue属性,如果没有传参而使用的默认值。String类型。
@RequestMapping("/showUser1/{useId}")
    public String toIndex(@PathVariable(value = "useId") String useId1, 
                          @RequestHeader("User-agent") String userAgent,
                          @RequestHeader(value = "Accept") String[] accepts,
                          @CookieValue(value="JSESSIONID",defaultValue = "") String sessionId , Model model) {
        Customer customer = this.customerService.getUserById(Integer.parseInt(useId1));
        model.addAttribute("customer", customer);
        return "showUser";
    }

好了,以上是三个注解的基本用法,相对比较简单,就不赘述了。

你可能感兴趣的:(@PathVariable、@RequestHeader以及@CookieValue注解使用说明)