我正在发送以下需要由 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/