我正在使用基于 xml 的验证。
问题:
我不想在第一次加载页面时对输入表单执行验证,因为所有字段都是空白供用户填写的。假设注册表单添加新学生。一旦我单击按钮,它就会执行。
注意: 即使在单击按钮时进行验证,我也希望保留相同的 url。新表单 URL 是http://localhost:8000/Struts2_Spring_Crud/student/add
,如果验证失败,甚至 url 应该是相同的。
struts.xml
<default-action-ref name="list"/>
<action name="list" class="com.myapp.actions.StudentAction" method="getAllStudents">
<!--<interceptor-ref name="myInterceptor"/>-->
<result name="success" type="tiles">/student.list.tiles</result>
</action>
<!--<action name="add">
<result type="tiles">/student.edit.tiles</result>
</action>-->
<action name="add" class="com.myapp.actions.StudentAction" method="insertOrUpdateStudent">
<result name="success" type="redirectAction">list</result>
<result name="input" type="tiles">/student.edit.tiles</result>
</action>
输入表格
<s:fielderror/>
<s:form action="add" method="POST">
<s:label name="name" value="Name *"/>
<s:textfield name="student.name" value="%{student.name}"/>
<s:fielderror fieldName="student.name"/>
<s:label name="age" value="Age *"/>
<s:textfield name="student.age" value="%{student.age}"/>
<s:submit name="saveForm" value="#title"/>
</s:form>
已编辑:如果我添加 excludeMethods 比这个 urlhttp://localhost:8000/Struts2_Spring_Crud/student/add
发送给我http://localhost:8000/Struts2_Spring_Crud/student/list
并且我的添加表单没有显示。
<action name="add" class="com.myapp.actions.StudentAction" method="insertOrUpdateStudent">
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<result name="success" type="redirectAction">list</result>
<result name="input" type="tiles">/student.edit.tiles</result>
</action>