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参数中。

     

  • 相关阅读:
    数据库存储过程和触发器
    现在输入 n 个数字, 以逗号, 分开; 然后可选择升或者 降序排序;
    我们在 web 应用开发过程中经常遇到输出某种编码的字 符, 如 iso8859-1 等, 如何输出一个某种编码的字符串?
    Linux常用命令
    Linux系统基础优化及常用命令
    基于DBUtils实现数据库连接池、蓝图及上下文管理
    Flask基础
    01-Flask入门
    Linux基础系统优化
    Linux中 用户管理与文件权限
  • 原文地址:https://www.cnblogs.com/zly123/p/11678414.html
Copyright © 2011-2022 走看看