zoukankan      html  css  js  c++  java
  • Springmvc-crud-04错误(路径变量)

    错误:

    原因:接收不到restful风格请求的参数(id值),需要添加路径变量注解

    @RequestMapping(value="/book/{id}",method=RequestMethod.DELETE)
        public String deleteBook(@PathVariable("id")int id) {
            bookSerice.deleteBook(id);
            return "redirect:/book";
        }

    关于路径变量的知识点:

    第①种情况(单个路径参数):
    @RequestMapping(value = "/book/{id}", method = RequestMethod.DELETE) public String deleteBook(@PathVariable(value = "id") int id) { System.out.println("删除图书 id ->" + id); return "redirect:/index.jsp"; }

    /book/{id} :{id}表示路径参数占位符

     @PathVariable(value = "id") int id:表示把请求路径book/{id} id所表示的值。注入到方法参数的int id中。

    当@PathVariable注解中没有标记占位符名称的时候,默认使用对应的参数名做为路径参数的名称取值。

    请记住:@PathVariable标记的路径变量,不能为空,必须有值

    第②种情况(多个路径参数):
    @RequestMapping(value = "/book/{name}/{price}/", method = RequestMethod.POST) public String addBook(@PathVariable("name") String name, @PathVariable("price") BigDecimal price) { System.out.println(name); System.out.println(price); System.out.println("添加图书"); return "redirect:/index.jsp"; }

    在一次请求中,请求路径不是只能有一个路径参数。它可以有多个。

    /book/{name}/{price}/:这里就表示这个book后面可以跟两个路径参数---{name}和{price}---这两个路径参数分别注入到请求方法的 String name,和Bigdecimal price两个参数中

    @PathVariable("name") String name——表示把请求路径中的name路径参数注入到请求方法的name参数中。

     @PathVariable("price") BigDecimal price——表示把请求路径中的price路径参数注入到请求方法的price参数中。

     

  • 相关阅读:
    ZeroMQ接口函数之 :zmq_msg_move
    ZeroMQ接口函数之 :zmq_msg_init_size
    Missing artifact org.hibernate:hibernate-core:jar:4.3.0.Final
    ezmorph将一种对象转换成另外一种对象
    Avalon Framework
    easymock单元测试跟踪工具
    pngencoder图像转换jar
    Lucene全文检索引擎
    cxf怎样提高webservice性能,及访问速度调优
    待整理-20180625
  • 原文地址:https://www.cnblogs.com/zly123/p/11678414.html
Copyright © 2011-2022 走看看