我是 Struts2 的新手。我想将验证框架用于简单的“注册”表单。这是我的 JSP 页面表单元素;
<s:form action="register">
<s:textfield name="name" label="Name" />
<s:textfield name="age" label="Age" />
<s:textfield name="email" label="email"/>
<s:submit value="Register" />
</s:form>
validation error ? = <s:actionerror /><br/>
---Action Message--- <s:actionmessage/>
这是struts2.xml文件;
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="register"
class="com.action.RegisterAction">
<result name="success">home.jsp</result>
<result name="input">index.jsp</result>
</action>
</package>
</struts>
RegisterAction类有
- 字符串名称;
- 年龄;
- 字符串电子邮件;带有 getter 和 setter 的变量。它的 execute() 只返回SUCCESS
对于这些字段验证,使用以下验证 xml 文件,目前只检查一个字段名称。验证文件的名称是RegisterAction-validation.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- Author: Aash -->
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>name is required.. :) </message>
</field-validator>
</field>
</validators>
这是项目结构
请任何人让我知道我怎么能想出这个。提前致谢。
新添加:根据struts.xml,如果有错误,(验证说有问题),页面应该重定向到index.jsp,但是当字段'name'没有给出任何内容时,它仍然可以到 home.jsp 。
A Solution Found
我添加到validation.xml
!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
但是它显示在Form 的顶部,我不知道为什么不打印为actionError
. 如何将其打印在我希望查看的位置(例如:表格底部)?