springmvc相关
Springmvc的请求注解可分为四类:
url请求地址(PathVariable)、
head请求头(RequestHeader、CookieValue)、
body请求体(RequestParam、RequestBody)、
请求类型(ModelAttribute、SeesionAttribute)、
异常处理(ControllerAdvice、ExceptionHandler)
1.注解@ModelAttribute
作用:返回响应数据到页面渲染。
@Controller
public class Hello2ModelController {
@ModelAttribute
public User populateModel() {
User user=new User();
user.setAccount("ray");
return user;
}
@RequestMapping(value = "/helloWorld2")
public String helloWorld() {
return "helloWorld.jsp";
}
}
被ModelAttribute注解的方法,在执行本类的其他方法前都会先去执行该方法,所以这个大多在父类中使用,比如baseController。
2.注解@PathVariable
作用:讲ur中的参数放到方法中。
/**
* localhost:8080/springmvc/hello/pathVariable/bigsea
* localhost:8080/springmvc/hello/pathVariable/sea
* 这些URL 都会 执行此方法 并且将 <b>bigsea</b>、<b>sea</b> 作为参数 传递到name字段
* @param name
* @return
*/
@RequestMapping("/pathVariable/{name}")
public String pathVariable(@PathVariable("name")String name){
System.out.println("hello "+name);
return "helloworld";
}
3.注解@requestMapping
处理请求地址映射
4.注解@SessionAttributes
springmvc有个ModelMap用来返回数据到页面的,但是这些数据是request级别的,就是说下次再请求,这些数据就不在了,为了下次请求还能用到这些数据,可以用SessionAttributes(value=“test”),将数据存到session中,这样下次还能用,用完想要从session清除的话可以使用SessionStatus.
@Controller @RequestMapping("/Demo.do") @SessionAttributes(value={"attr1","attr2"}) public class Demo { @RequestMapping(params="method=index") public ModelAndView index() { ModelAndView mav = new ModelAndView("index.jsp"); mav.addObject("attr1", "attr1Value"); mav.addObject("attr2", "attr2Value"); return mav; } @RequestMapping(params="method=index2") public ModelAndView index2(@ModelAttribute("attr1")String attr1, @ModelAttribute("attr2")String attr2) { ModelAndView mav = new ModelAndView("success.jsp"); return mav; } }
@RequestMapping(params="method=index3") public ModelAndView index4(SessionStatus status) { ModelAndView mav = new ModelAndView("success.jsp"); status.setComplete(); return mav; }
5.ResponseBody
返回请求体,异步加载的时候使用。
浙公网安备 33010602011771号