zoukankan      html  css  js  c++  java
  • SpringMVC Rest风格

    对资源的操作,基本都不外乎增删改查4个操作

      传统风格:http://i.cnblogs.com/element/add?id=1

           http://i.cnblogs.com/element/update?id=1

           http://i.cnblogs.com/element/delete?id=1

           http://i.cnblogs.com/element/get?id=1

      使用起来繁琐,而且当操作多的时候,起url名字也会变的困难,Rest风格就是来解决这个问题的

      比如我要对一号元素做增删改查的操作

      我只需要url写成http://i.cnblogs.com/element/1  然后通过请求方法的不同  例如:get、post、delete、put等来区别是增删改查中的哪个操作

      具体代码如下:

    @Controller
    public class RestController {
    
        @RequestMapping(value = "book/{id}" ,method = RequestMethod.GET)
        public String query(Model model, @PathVariable int id){
    
            model.addAttribute("msg","查询"+id+"号图书");
            return "restFul";
        }
    
        @RequestMapping(value = "book/{id}" ,method = RequestMethod.DELETE)
        public String delete(Model model, @PathVariable int id){
    
            model.addAttribute("msg","删除"+id+"号图书");
            return "restFul";
        }
    
        @RequestMapping(value = "book/{id}" ,method = RequestMethod.PUT)
        public String update(Model model, @PathVariable int id){
    
            model.addAttribute("msg","更新"+id+"号图书");
            return "restFul";
        }
    
        @RequestMapping(value = "book/{id}" ,method = RequestMethod.POST)
        public String add(Model model, @PathVariable int id){
    
            model.addAttribute("msg","添加"+id+"号图书");
            return "restFul";
        }
    
    }

    现在问题就剩下 如何让前端.jsp页面发送不同的请求,有以下几步

      1)、在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>
            <url-pattern>/*</url-pattern>
    </filter-mapping>

      2)、在.jsp页面中区分好提交请求    

    <form action="book/1" method="post">
            <input type="submit" value="添加1号图书">
        </form>
    
        <form action="book/1" method="post">
          <label>
            <input name="_method" value="delete">
          </label>
          <input type="submit" value="删除1号图书">
        </form>

     注意:tomcat8.0 及以上版本会报异常

      需要在.jsp文件中加入  isErrorPage="true"

  • 相关阅读:
    最短路径-Dijkstra算法(转载)
    递归算法到非递归算法的转换
    向量点乘(内积)和叉乘(外积、向量积)概念及几何意义(转载)
    数据预处理之独热编码(One-Hot Encoding)(转载)
    MyEclipse中手工添加dtd支持
    怎样sublime显示文件夹
    sublime_Text3中snippet设置信息头(包括作者、日期)
    解决Sublime_Text不能安装插件的方法
    Python设置默认编码为UTF-8
    解决火狐启动缓慢的方法
  • 原文地址:https://www.cnblogs.com/lxy-java/p/12876370.html
Copyright © 2011-2022 走看看