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

返回请求体,异步加载的时候使用。

 

原文地址:https://www.cnblogs.com/3chi/p/6913762.html