Struts 2字段使用动态表单进行验证

时间:2014-10-05 20:10:12

标签: jsp validation struts2 struts-tags repopulation

我有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>

可以看出,从动作名称到字段名称的所有元素都是动态创建的

对字段进行验证检查时出现问题。 在验证检查时,会显示错误,但页面中不会显示任何文本字段。

如何解决此问题。

1 个答案:

答案 0 :(得分:2)

阅读what happens when a validation or conversion error occours;

的详细工作流程

一旦了解了所发生的情况,请阅读How do we repopulate controls when validation failsprepare()方法和其他方法);

然后,看看你需要构建到send Lists or Maps from JSP to Action的哪种符号(和复杂情况下的结构),无论是静态(JSP还是HTML)还是动态(JSP or Javascript );

最后,我不确定你为什么使用JSTL而不是a Struts Iterator,也不知道你要发送数据的数据结构,但是要注意在名称中加入索引的必要性(使用IteratorStatus.index)。