【问题标题】:How does Spring encode POJOs in GET requests for @ModelAttribute?Spring 如何在@ModelAttribute 的 GET 请求中编码 POJO?
【发布时间】:2011-04-20 18:48:46
【问题描述】:

我有一个这样设置的 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 中使用 <form:form modelAttribute='paginationargs'> 标记处理这个问题,但是我们的项目没有使用 JSP,而是使用 Jamon。

【问题讨论】:

    标签: spring-mvc jamon modelattribute


    【解决方案1】:

    在简单情况下,参数名称应与模型对象的相应字段名称相同。所以,如果PaginationArgs 有字段pagesize,它就会像page=1&size=10

    在更复杂的情况下,Spring 可以接受名称格式如5.4 Bean manipulation and the BeanWrapper 中所述的参数。

    【讨论】:

    • 谢谢!通读该链接后,我仍然不清楚的是,如果您在具有相同名称的不同 @ModelAttribute POJO 中有两个字段会发生什么:我如何明确地说 paginationargs1.size 和 paginationargs2.size?我已经使用 value="paginationargs1" 来设置属性名称,但是在 URL 中写入 ?paginationsargs1.size=10 似乎不起作用。
    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多