Spring MVC 常用标签
@RequestAttribute 获取HttpServletRequest对象中的属性
- value:属性名称
- required:是否必须
<% // 在JSP文件中设置request对象的属性,然后转发到控制器中 request.setAttribute("id", 2L); request.getRequestDispatcher("./param/requestAttribute.do") .forward(request, response); %>
@RequestMapping("/requestAttribute.do") public ModelAndView reqAttr(@RequestAttribute(value = "id", required = false) Long id) { ModelAndView mv = new ModelAndView(); logger.info("获取RequestAttribute中的值id:" + id); mv.setView(new MappingJackson2JsonView()); return mv; }
@SessionAttributes 向HttpSession中设置属性(该注解只能作用在类上)
- names:按名称设置,设置在Model里的该名称的对象会被存储在Session中
- types:按类型设置,设置在Model里的该类型的对象会被存储在Session中
@SessionAttributes(names = {"id"}, types = {Role.class}) public class SessionController { @RequestMapping("/sessionAttributes.do") public ModelAndView sessionAttr() { ModelAndView mv = new ModelAndView(); Role role = iRoleService.getRole(id); // 根据类型,Session会保存Role对象 mv.addObject("role", role); // 根据名称,Session会保存id mv.addObject("id", id); mv.setViewName("sessionAttribute"); return mv; } }
@SessionAttribute 获取Session中的值
- value:session中的名称
- required:是否必须
public ModelAndView sessionAttr(@SessionAttribute("id") Long id) {...}
@RequestHeader和@CookieValue分别是获取请求头信息和Cookie信息
@RequestMapping("/getHeaderAndCookie") public ModelAndView getHeaderAndCookie(@RequestHeader(value = "User-Agent", required = false , defaultValue = "attribute") String userAgent , @CookieValue(value = "JSESSIONID", required = false, defaultValue = "MyJSessionId") String jsessionId) { System.out.println("User-Agent:" + userAgent); System.out.println("JSESSIONID:" + jsessionId); ModelAndView mv = new ModelAndView(); mv.setView(new MappingJackson2JsonView()); return mv; }