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

Jac*_*ack 7 spring spring-mvc

我发送的请求需要由Spring-MVC处理,但事实并非如此.

http://localhost:2001/MyProject/flights/find?origin=LAX&destination=WA&departure=&arrival=&return=false
Run Code Online (Sandbox Code Playgroud)

@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) {
Run Code Online (Sandbox Code Playgroud)

man*_*ish 16

这不是正确的使用方式(或地点)@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) { ... }
}
Run Code Online (Sandbox Code Playgroud)

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

您还必须添加一个java.beans.PropertyEditor用于阅读日期,因为日期将(可能)采用特定格式.