我正在嘗試Spring MVC示例。我有一個具有列表類型變量一樣如何將字符串轉換爲List對象在春天MVC
private List<HashMap<String, String>> books;
在我的控制器我有
@RequestMapping(value = "/booksList", method = RequestMethod.POST)
public String displayBooks(@ModelAttribute TestBean testBean, Model model, HttpSession session) {
// some code here
}
在我的JSP頁面中我有
<form:form action="booksList.html" method="post" modelAttribute="testBean">
<form:hidden path="books" />
<input type="submit" value="submit">
</form:form>
當我提交這種形式我得到一個testBean就此錯誤
無法將轉換的值請輸入[
java.lang.String
]至所需類型[java.util.HashMap
],查看屬性「books[0]
」。
我該如何解決這個錯誤?請幫助
更新時間:
I have seen that我能做到這樣也。
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(List.class, "testBean", new CustomCollectionEditor(List.class) {
@Override
protected Object convertElement(Object element) {
TestBean testBean = new TestBean();
if (element != null) {
List<HashMap<String, String>> id = (List<HashMap<String, String>>) element;
testBean.setFilters(id);
}
return testBean;
}
});
}
但我不明白上面的方法完全可能會有一些錯誤,我寫了什麼。我不知道如何以及從哪裏撥打convertElement(Object element)
方法。我明白initBinder(WebDataBinder binder)
會在我的控制器方法public String displayBooks(...)
之前調用jsut。即使我不知道這是否正確。