0
正在開發一個網站。在它裏面,有一個網頁流,在那裏有一個由用戶填充的表格。但是我不知道表的行數,因爲有一個「添加行」按鈕,所以用戶輸入他/她想要的值。我怎樣才能獲得用戶輸入的值來將它們保存在數據庫中?從Spring Web Flow中的表單中獲取動態表的值
謝謝。
正在開發一個網站。在它裏面,有一個網頁流,在那裏有一個由用戶填充的表格。但是我不知道表的行數,因爲有一個「添加行」按鈕,所以用戶輸入他/她想要的值。我怎樣才能獲得用戶輸入的值來將它們保存在數據庫中?從Spring Web Flow中的表單中獲取動態表的值
謝謝。
假設你flowscope形式YourForm和表中的每一行由POJO代表比方說用戶,在yourForm創建一個行名單爲:
public class YourForm implements Serializable{
private List<User> rowList = new ArrayList<User>();
//other form fields and setters and getters for all these fields
}
和用戶類是:
public class User{
// row fields to be displayed/captured from user in table
}
在您看來的jsp:
//create a javascript function as:
function addRow(eventID){
document.getElementById("yourForm")._eventId.value = eventID;
document.getElementById("yourForm").submit();
}
然後
//When user clicks on add row, a new row with empty form fields will be displayed along with existing ones as:
<input type="button" value="Add Row" onclick="addRow('addRow');"/>
<c:forEach items="${yourForm.rowList}" var="user" varStatus="loop">
//Display rows with corresponding fields
</c:forEach>
在你的流程:
<view-state id="someView" view="someView">
<transition on="addRow">
<evaluate expression="yourAction.addRow(flowScope.yourForm)"/>
</transition>
<transition on="addToDatabase" to="addToDatabase">
</view-state>
注:如果未指定的過渡「到」,然後會顯示同樣的觀點後評估。
在你的Action類的addRow方法是:
public void addRow(YourForm yourForm) throws Exception{
yourForm.getRowList().add(new User());
}
當用戶最終希望通過單擊生成事件「addToDatabase」,將所有用戶輸入的表單列表(rowList)到實體按鈕,堅持所有行並堅持下去。 我希望這可以幫助。
我終於可以測試這個,Prasad,並用這種方法它的工作!非常感謝你。 – Fustigador