2014-10-05 58 views
1

我有Struts 2應用程序。Struts 2字段使用動態表單驗證

我有一個jsp文件,它看起來像下面

<s:form method="post" action="%{#attr.actionType}"> 

    <c:forEach items="${nvpList2}" var="item"> 
     <s:textfield label="%{#attr.item.displayName}" 
        value="%{#attr.item.value}" 
         name="%{#attr.item.getName()}" 
         id="%{#attr.item.getName()}"/> 
    </c:forEach> 

    <s:submit type="button" cssClass="btn btn-primary" 
       key="button.save" theme="simple" > 
     <i class="icon-ok icon-white"></i> 
    </s:submit> 

</s:form> 

因爲它可以看出,所有的動作名稱開始字段名的要素是動態創建的,當我做一個驗證發生

問題檢查字段。 驗證檢查時,顯示錯誤,但沒有任何文本字段出現在頁面中。

我該如何解決這個問題。

+0

當您返回輸入結果時會顯示錯誤,因此在結果偵聽器重新填充列表之前。 – 2014-10-05 21:41:29

回答

2

閱讀what happens when a validation or conversion error occours的詳細工作流程;一旦你得到正在發生的事情,請閱讀​​(prepare()方法和其他方法);然後,不管靜態(JSP或HTML)還是動態(JSP or Javascript),都需要查看您需要構建到send Lists or Maps from JSP to Action的哪種表示法(以及複雜情況下的結構);而不管是靜態的(JSP還是HTML)還是動態的(JSP or Javascript)。最後,我不確定你爲什麼使用JSTL而不是a Struts Iterator,也不知道你發送數據的數據結構,但要注意需要在名稱中加上索引(用IteratorStatus.index)。