Spring 如何在 @ModelAttribute 的 GET 请求中编码 POJO?

发布于 2024-11-02 10:02:08 字数 724 浏览 1 评论 0原文

我有一个 Spring MVC 控制器,如下所示:

@RequestMapping("activityChart")
public ModelAndView activityChart(
  @RequestParam(required=false, value="parent") String parent,
  @RequestParam(required=false, value="expand") String[] expand,
  @ModelAttribute PaginationArgs paginationargs) throws IOException {

// ... return template renderer

}

其中 PaginationArgs 是一个两字段 POJO。我想构造一个包含 paginationargs 值的 URL 字符串。对于 parentexpand 来说很容易 - activityChart?parent=foo&expand=bar&expand=baz,但是正确的方法是什么对 POJO 的字段进行编码?

JSP 在 Spring 中使用 标记来处理此问题,但我们的项目没有使用 JSP,而是使用 Jamon。

I have a Spring MVC controller set up like so:

@RequestMapping("activityChart")
public ModelAndView activityChart(
  @RequestParam(required=false, value="parent") String parent,
  @RequestParam(required=false, value="expand") String[] expand,
  @ModelAttribute PaginationArgs paginationargs) throws IOException {

// ... return template renderer

}

Where PaginationArgs is a two-field POJO. I want to construct a URL string that includes values for paginationargs. It's easy to do for parent and expand - activityChart?parent=foo&expand=bar&expand=baz, but what's the right way to encode a POJO's fields?

JSP takes care of this in Spring with a <form:form modelAttribute='paginationargs'> tag, but our project isn't using JSP but Jamon instead.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静若繁花 2024-11-09 10:02:08

在简单情况下,参数名称应与模型对象对应的字段名称相同。因此,如果 PaginationArgs 具有字段 pagesize,则类似于 page=1&size=10

在更复杂的情况下,Spring 可以接受其名称按照 5.4 Bean 操作和 BeanWrapper

In the simple case parameter names should be the same as the corresponding field names of the model object. So, if PaginationArgs has fields page and size, it would be like page=1&size=10.

In more complex cases Spring can accept parameters whose names are formed as described in 5.4 Bean manipulation and the BeanWrapper.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文