spring - 如何在 Spring-MVC 上处理具有多个参数的请求

标签 spring spring-mvc

我正在发送以下需要由 Spring-MVC 处理的请求,但事实并非如此。

http://localhost:2001/MyProject/flights/find?origin=LAX&destination=WA&departure=&arrival=&return=false

代码

@Controller
@RequestMapping("/flights")
public class FlightController {

   @RequestMapping(value = "/find?origin={origin}&destination={destination}&departure={departure}&arrival={arrival}&return={return}", method = RequestMethod.GET)
    public String findFlight(@PathVariable String origin,
            String destination, Date departure, Date arrival, boolean return) {

最佳答案

这不是使用@PathVariable的正确方法(或位置)。您需要使用@RequestParam

@Controller
@RequestMapping("/flights")
public class FlightController {
  @RequestMapping("/find")
  public String findFlight(@RequestParam String origin
                          , @RequestParam String destination
                          , @RequestParam(required = false) Date departure
                          , @RequestParam(required = false) Date arrival
                          , @RequestParam(defaultValue = "false", required = false, value = "return") Boolean ret) { ... }
}

请注意,return 是 Java 中的关键字,因此您不能将其用作方法参数名称。

您还必须添加一个 java.beans.PropertyEditor 来读取日期,因为日期(大概)采用特定格式。

关于spring - 如何在 Spring-MVC 上处理具有多个参数的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191043/

相关文章:

spring - 是否可以在spring集成中覆盖消息头ID的值?

Eclipse 和 Web 项目导入,在服务器上运行缺失!

spring - 处理表单提交传递到 Spring MVC Controller 方法中的 "boolean"参数的最聪明方法是什么?

spring-boot - 将 @Future 和 LocalDate 的自定义 ConstraintValidator 添加到 Spring Boot 项目

java - G1GC 老一代提交的堆不断增长,使用的是恒定的 - 导致伊甸园饥饿

java - 带有 JWT 的 Spring OAuth2 - 分离 Auth 和资源服务器时无法将访问 token 转换为 JSON

java - 如何使用不同的数据库动态重新加载 Spring Data Neo4j 图形数据库服务

Spring 的 Java Bean 方法约束验证不适用于构造函数

java - Spring Boot 外部 Tomcat 不是异步的

java - Spring MVC 不兼容 Jax RS : is it risky?