gpt4 book ai didi

java - Spring MVC - 参数绑定(bind)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:23 30 4
gpt4 key购买 nike

为什么这段代码能正常工作?我没有在参数之前指定任何自定义转换器或注释(如 @RequestBody@ModelAttribute)?从此 GET 调用正确填写了请求:

http://localhost:8080/WS/foo?token=C124EBD7-D9A5-4E21-9C0F-3402A1EE5E9B&lastSync=2001-01-01T00:00:00&pageNo=1

代码:

@RestController
@RequestMapping(value = "/foo")
public class FooController {

@RequestMapping(method = RequestMethod.GET)
public Result<Foo> excursions(Request request) {
// ...
}

}

请求只是带有 getter 和 setter 的 POJO。我用它来缩短参数代码,因为很多方法使用相同的参数 ...

public class Request {

private String token;
@DateTimeFormat(pattern = IsoDateTime.DATETIME)
private Date lastSync;
private Integer pageNo;

// getters and setters

}

这是我在引入Request之前的原始方法。

@RestController
@RequestMapping(value = "/foo")
public class FooController {

@RequestMapping(method = RequestMethod.GET)
public Result<Foo> excursions(@RequestParam String token, @RequestParam @DateTimeFormat(pattern = IsoDateTime.DATETIME) Date lastSync, @RequestParam Integer pageNo) {
// ...
}

}

最佳答案

默认情况下,请求参数将映射到 POJO,就像您的情况一样。此外,如果您使用 @ModelAttribute ,将创建 Model 中的一个属性。然后可以在 View 中使用该属性,例如JSP,访问对象。

@RequestBody 注释告诉请求的主体不是一组表单参数,如

token=C124EBD7-D9A5-4E21-9C0F-3402A1EE5E9B&lastSync=2001-01-01T00:00:00&pageNo=1

但采用其他格式,例如 JSON。

关于java - Spring MVC - 参数绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986357/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com