2014-05-25 57 views
0

正在開發一個網站。在它裏面,有一個網頁流,在那裏有一個由用戶填充的表格。但是我不知道表的行數,因爲有一個「添加行」按鈕,所以用戶輸入他/她想要的值。我怎樣才能獲得用戶輸入的值來將它們保存在數據庫中?從Spring Web Flow中的表單中獲取動態表的值

謝謝。

回答

1

假設你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)到實體按鈕,堅持所有行並堅持下去。 我希望這可以幫助。

+0

我終於可以測試這個,Prasad,並用這種方法它的工作!非常感謝你。 – Fustigador