@RequestMapping("/User") // 指定控制器映射的URL,请求URL要加上User
@RequestMapping(value="/user/*/index",method=RequestMethod.POST)
value ="/user/*/index" | 匹配 user/aa/index、user/bbb/index 等URL |
value ="/user/**/index" | 匹配 user/index、user/aa/bb/index等URL |
value="/user/index??" | 匹配 user/indexaa、user/indexbb等URL |
value="/user/{userId}" | 匹配 user/123、user/abc等URL |
value="/user/**/{userId}" | 匹配 user/aaa/bbb/123、user/aaa/456等URL |
value="/user/{userId}/user/{userId2}/detail" | 匹配 user/123/user/123/detail 等URL |
// 方法中的占位符可以通过@PathVariable 绑定到方法入参中
@RequestMapping(value="{userId}",method=RequestMethod.POST)
public ModelAndView index(@PathVariable("userId")String userId) {
System.out.println(userId);
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
// 不建议使用这种写法,原因是不指定参数名,只有在编译时打开debug开关(javac - debug)时才可行
@RequestMapping(value="{userId}",method=RequestMethod.POST)
public ModelAndView index(@PathVariable String userId) {
System.out.println(userId);
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
method 方法
序号 | 请求方法 | 说明 |
1 | GET | 多次执行同一GET请求,不会对系统造成影响,GET方法具有幂等性【指多个相同请求相同的结果】。GET请求可以充分使用客户端的缓存。 |
2 | POST | 通常表示“创建一个新资源”,但它既不安全也不具有幂等性(多次操作会产生多个新资源)。 |
3 | DELETE | 表示删除一个资源(删除不存在的东西没有任何问题) |
4 | PUT | 幂等性同样适用于PUT(基本含议是“更新资源数据,如果资源不存在的话,则根据此URL创建一个新的资源”) |
// 所有URL为/delete的请求由index方法处理(任何请求)
@RequestMapping(value="/delete")
public ModelAndView index() {
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
// 所有URL 为/delete的请求且请求方法为DELETE的请求由index 方法处理
@RequestMapping(value="/delete",method=RequestMethod.DELETE)
public ModelAndView index() {
// 返回指定的jsp页面
ModelAndView mav = new ModelAndView("message");
return mav;
}
html中form表单只支持GET与POST请求,而DELETE、PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET、POST、PUT与DELETE请求。
配置web.xml
<filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <servlet-name>spring</servlet-name> </filter-mapping>
普通页面提交PUT请求,只需添加_method
<input type="hidden" name="_method" value="put"/>