【问题标题】:Two parameter in Request mapping请求映射中的两个参数
【发布时间】:2015-02-18 20:44:24
【问题描述】:

我在 Spring MVC 控制器中使用两个参数进行请求映射时遇到问题。

             /* Jsp page code*/

<c:url var="url_confirm" value="/admin/orderList"/>
<a href="${url_confirm}/${li.orderId}/${"confirmed"}" >Confirmed</a>

在我的控制器中,我正在尝试这样,但出现错误:-

@RequestMapping("/admin/orderList/${li.orderId}/${"confirmed"}")
public String changeStatus(@RequestParam("li.orderId") Integer orderId,@RequestParam("confirmed") String status) {

      // TODO
    System.out.println(orderId);
    System.out.println(status);
    return "orderList";
}

如何使用两个参数正确映射 URL,以便在控制器处获取两个值(orderId,status)?

【问题讨论】:

  • ${li.orderId} 是否在您的 jsp 上正确解析?你能发布你生成的href的html代码吗?

标签: spring-mvc restful-url


【解决方案1】:

在这种情况下,您需要@PathVariable 而不是@RequestParam。 因此,将您的映射更改为,

@RequestMapping("/admin/orderList/{orderId}/{confirmed}")
public String changeStatus(@PathVariable("orderId") Integer orderId, @PathVariable("confirmed") String status) {

   // your code here
}

更多详情,对比看this话题。

【讨论】:

  • 这可能是由于多种原因。请检查您的控制器映射(确保您没有任何映射,否则您必须在/admin/* 之前添加它)。还要检查您的 MVC 配置。如果可能,请使用更多详细信息编辑您的问题,以便发现问题。
  • 所有其他配置都可以。我的另一个控制器工作正常。
  • 看起来你还有 ``` @RequestMapping("/admin/orderList/${li.orderId}/${confirmed}")``` 。将其更改为```@RequestMapping("/admin/orderList/{orderId}/{confirmed}")```
  • 正如您在文档和讨论中看到的,这是构建映射的正确方法。抱歉,使用提供的代码无法猜出问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 2016-01-04
  • 1970-01-01
相关资源
最近更新 更多