2011-07-09 84 views
0

我正在使用spring mvc portlet作爲我的一個應用程序。在使用Controller中的List集合綁定動態填充列表框時遇到問題。spring portlet mvc form:select bind to list

Conference.java:

public class Conference { 
    private List<Patient> scheduledPatients; 
    //getter/setter for scheduledPatients 
} 

saveParticipants.jsp

<form:select path="scheduledParticipants" items="${scheduledParticipants}" itemLabel="name" itemValue="name" /> 

的scheduledParticipants列表數據填充有來自另一列表框中選擇的數據並移動到scheduledParticipants列表框。

在提交操作請求時,我無法獲取在控制器操作映射中綁定的新填充的scheduledParticipants。 ModelAttribute是會議pojo。

我們使用InitBinder將數據綁定到scheduledParticipants。 仍然我無法獲取控制器上選定的參與者數據。

有誰知道如何做到這一點?

回答

0

我們必須使用initBinder將對象列表綁定到它們的bean對象。

春天MVC 3,請參閱下面的代碼:

@InitBinder<br/> 
public void setTestBinder(WebDataBinder dataBinder) { 
    dataBinder.registerCustomEditor(List.class, new TestPropertyEditor(List.class, true)); 
} 

我們需要寫一個TestPropertyEditor(延伸CustomCollectionEditor),這將有convertElement方法將字符串轉換到一個合適的對象。

有關initBinder的變體,請參閱Spring MVC框架參考文檔....