@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";
}
好了,以上是三个注解的基本用法,相对比较简单,就不赘述了。