2011-04-20 39 views
0

我有一個Spring MVC的控制器設置像這樣:Spring如何在@ModelAttribute的GET請求中編碼POJO?

@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代替。

回答

1

在簡單情況下,參數名稱應與模型對象的相應字段名稱相同。所以,如果PaginationArgs的字段爲pagesize,那就好像page=1&size=10

在更復雜的情況下,Spring可以接受其名稱形成的參數,如5.4 Bean manipulation and the BeanWrapper中所述。

+0

謝謝!通讀鏈接後,我還不清楚如果在單獨的@ModelAttribute POJO中有兩個字段具有相同名稱時會發生什麼情況:如何明確說出paginationargs1.size和paginationargs2.size? 我已經使用value =「paginationargs1」來設置屬性名稱,但是在URL中寫入?paginationsargs1.size = 10似乎不起作用。 – HenryR 2011-04-20 20:27:44