SpringMVC的注解

@RequestMapping

指定请求的路径

  • path :路径

  • method:请求的方法。{RequestMethod.GET,RequestMethod.POST}

  • params:指定请求中的参数。params = {"username"}

  • headers:用于指定限制请求消息头的条件。headers ={"Accept"} 表示请求头要有Accept参数

@RequestParam

把请求中的指定名称的参数传递给控制器中的形参赋值. testRequestParam(@RequestParam(name = "name",required = true) String username)

  • value:请求参数中的名称

  • required:请求参数中是否必须提供此参数,默认值是true,必须提供

@RequestBody注解

用于获取请求体的内容(注意:get方法不可以)saveUser(@RequestBody String body)

  • required:是否必须有请求体,默认是true

@PathVariable

拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符.

@RequestMapping("/testPathVariable/{id}")
  public String testPathVariable(@PathVariable("id") String id){}
  • value:指定url中的占位符名称

@RequestHeader

获取请求头中的参数

@RequestMapping("/testRequestHeader")
    public String testRequestHeader(@RequestHeader("Cookie") String header){
        System.out.println(header);
        return "success";
    }

@CookieValue

用于获取指定cookie的名称的值

@RequestMapping("/testCookieValue")
    public String testCookieValue(@CookieValue("JSESSIONID") String header){
        System.out.println(header);
        return "success";
    }

@ModelAttribute

    /*
        ModelAttribute注解
        作用
            出现在方法上:表示当前方法会在控制器方法执行前线执行。
            出现在参数上:获取指定的数据给参数赋值。
        应用场景
            当提交表单数据不是完整的实体数据时,保证没有提交的字段使用数据库原来的数据。
     */
    @RequestMapping("/testModelAttribute")
    public String testModelAttribute(@ModelAttribute("abc") User user){
        System.out.println(user);
        return "success";
    }

    /**
     * ModelAttribute注解
     *  会在RequestMapping注解执行之前执行
     */
//    @ModelAttribute
    public void showUser(String uname, Map<String,User> map){
        User user = new User();
        user.setUname(uname);
        user.setAge(18);
        user.setDate(new Date());
        map.put("abc",user);
        System.out.println("showUser方法执行了。。。"+user);

    }

@SessionAttributes

把值存入session中

@Controller
@RequestMapping("sessionAttribute")
@SessionAttributes(names = {"name"})//把name的值存到session域对象中一份
public class SessionAttributeController {

    /**
     * 存值
     * @param model
     * @return
     */
    @RequestMapping("testPut")
    public String testPut(Model model){
        String name = "张三";
        model.addAttribute("name",name);
        System.out.println("put:" + name);
        return "success";
    }

    /**
     * 取值
     * @param modelMap
     * @return
     */
    @RequestMapping("testGet")
    public String testGet(ModelMap modelMap){
        String name = (String) modelMap.get("name");
        System.out.println("get:" + name);
        return "success";
    }

    /**
     * 删除
     * @param status
     * @return
     */
    @RequestMapping("testDel")
    public String testDel(SessionStatus status){
        status.setComplete();
        System.out.println("delete session");
        return "success";
    }
}
--------------- 我每一次回头,都感觉自己不够努力,所以我不再回头。 ---------------
原文地址:https://www.cnblogs.com/zjw-blog/p/13955691.html