spring mvc完成restful风格的url
2017-10-23 10:35
387 查看
先上controller的代码
jsp的form表单只支持post,get请求,因此对于其他请求方式,我们需要使用 并配置org.springframework.web.filter.HiddenHttpMethodFilter
jsp代码如下:
接着配置web.xml添加filter
spring为你的DispatcherServlet的名称。
接下来表单提交的put请求就会到达正确的controller。但是接下来你会发现spring mvc无法返回正确的视图.例如上述的update方法无法正确的返回到hello.jsp。这时
这里三种解决办法
1.如果你是用的是tomcat8,把它换成tomcat7
2.将forward换成redirect
3.自己手动写一个Filter来包装HttpRequest中的getMethod()方法
@RequestMapping(path="/user/{id}",method=RequestMethod.POST) public String add(@PathVariable String id,Model model) { System.out.println("新建id为"+id+"的学生"); model.addAttribute("hello", "add"); return "hello"; } @RequestMapping(path="/user/{id}",method=RequestMethod.DELETE) public String delete(@PathVariable String id,Model model) { System.out.println("删除id为"+id+"的学生"); model.addAttribute("hello", "add"); return "hello"; } @RequestMapping(path="/user",method=RequestMethod.DELETE) public String deleteAll(Model model) { System.out.println("删除全部的学生"); model.addAttribute("hello", "deleteall"); return "hello"; } @RequestMapping(path="/user/{id}",method=RequestMethod.PUT) public String updat(@PathVariable String id,Model model) { System.out.println("更新id为:"+"的学生"); model.addAttribute("hello", "update"); return "hello"; } @RequestMapping(path="/user/{id}",method=RequestMethod.GET) public String get(@PathVariable String id,Model model) { System.out.println("获得id为:"+"的学生"); model.addAttribute("hello", "get"); return "hello"; } @RequestMapping(path="/user",method=RequestMethod.GET) public String getall(Model model) { System.out.println("获得所有的学生"); model.addAttribute("hello", "getall"); return "hello"; }
jsp的form表单只支持post,get请求,因此对于其他请求方式,我们需要使用 并配置org.springframework.web.filter.HiddenHttpMethodFilter
jsp代码如下:
<body> form action="/user/1" method="post" <form action="${pageContext.request.contextPath}/user/1" method="post"> <input type="submit"/> </form> <br/> form action="${pageContext.request.contextPath}/user" method="get" <form action="${pageContext.request.contextPath}/user" method="get"> <input type="submit"/> </form> <br/> form action="${pageContext.request.contextPath}/user/1" method="get" <form action="${pageContext.request.contextPath}/user/1" method="get"> <input type="submit"/> </form><br/> form action="${pageContext.request.contextPath}/user/1" method="put" <form action="${pageContext.request.contextPath}/user/1" method="post"> <input type="hidden" name="_method" value="put" /> <input type="submit"/> </form><br/> </body>
接着配置web.xml添加filter
<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>
spring为你的DispatcherServlet的名称。
接下来表单提交的put请求就会到达正确的controller。但是接下来你会发现spring mvc无法返回正确的视图.例如上述的update方法无法正确的返回到hello.jsp。这时
这里三种解决办法
1.如果你是用的是tomcat8,把它换成tomcat7
2.将forward换成redirect
3.自己手动写一个Filter来包装HttpRequest中的getMethod()方法
相关文章推荐
- spring mvc乱码解决与restful风格的url
- 【Python】Django 支持 restful 风格 url
- Spring MVC开发RESTful风格的URI
- SpringMVC restful风格 url带参数问题
- SpringMVC RESTful风格URL处理带点的参数
- Spring RESTful风格url示例
- SpringMVC中restful风格的URL
- Spring MVC restful风格之put and delete
- Spring MVC 使用HiddenHttpMethodFilter配置Rest风格的URL
- Spring MVC RestFul风格对css.js等文件的拦截处理方法大全
- Spring mvc 构造RESTful URL 详细讲解(spring 3.0 应用)
- Spring MVC 4.1.5 RESTFUL风格返回JSON数据406错误处理
- springmvc restful风格url找不到js文件
- springmvc复习笔记----Restful 风格,PathVariable获取 Url实例
- Spring MVC 使用拦截器 HiddenHttpMethodFilter配置Rest风格的URL
- SpringMVC的RESTful风格url @PathVariable注解 使用
- Spring MVC 4.1.4 RESTFUL风格返回JSON数据406错误处理
- 使用cxf,spring,mybatis框架完成restful风格的webservice服务
- YII中利用urlManager将URL改写成restful风格
- spring mvc url风格