SpringMVC 学习笔记(1)

2017-11-06  本文已影响0人  繁页

@RequestMapping注解

RequestMaping是用于处理请求地址映射的注解,可作用于类或方法上。作用于类上时,表示该类中所有方法请求响应的地址均以该地址为父路径。
该注解接口中定义了7个属性

public interface RequestMapping extends Annotation {
   // 指定映射的名称
    public abstract String name();
   // 指定请求路径的地址
    public abstract String[] value();
   // 指定请求的方式,是一个RequsetMethod数组,可以配置多个方法
    public abstract RequestMethod[] method();
   // 指定参数的类型
    public abstract String[] params();
   // 指定请求的header值
    public abstract String[] headers();
   // 指定数据请求的格式
    public abstract String[] consumes();
   // 指定返回的内容类型
    public abstract String[] produces();
}

默认@RequestMapping("/xxx/xxx")即指定value=/xxx/xxx
指定请求方式为Post@RequestMapping(value = "/xxx/xxx", method = RequestMethod.POST)

@PathVariable注解

使用@PathVariable来接收request请求地址中的动态参数,参数值需要在url进行占位,当方法参数名和请求地址中变量名不一致时,需要指定变量名@PathVariable(value = "page", defaultValue = "page")即value值为page,如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值

@RequestMapping("/{page}")
    public String showPage(@PathVariable String page) {
        return page;
    }

@RequestParam注解

使用@RequestParam接收前端参数比较方便,而当请求参数不存在时会有异常发生,可以通过设置属性required=false解决@RequestParam(value="username", required=false)

 /**
  * url = "localhost:8080/xx?username=${username}&password=${password}"
  */
 @RequestMapping("/addUser")
    public String addUser(@RequestParam("username") String username,@RequestParam("password") String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "/index";
    }

SpringMVC中Controller层获取请求参数的几种方式

  • 直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交
  • 通过HttpServletRequest接收,post方式和get方式都可以
  • 通过一个pojo对象来接收,post方式和get方式都可以
  • 使用@ModelAttribute注解获取post请求的form表单数据
  • 使用@PathVariable注解获取路径中的参数
  • 使用@RequestParam注解绑定请求参数到方法入参
上一篇下一篇

猜你喜欢

热点阅读