【发布时间】:2012-06-30 14:57:42
【问题描述】:
我是 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 类有
- 字符串名称;
- int 年龄;
- 字符串电子邮件;带有 getter 和 setter 的变量。而它的 execute() 只是返回 SUCCESS
对于这些字段验证,使用以下验证 xml 文件,目前只检查一个字段 name。验证文件的名称是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>
这里是项目结构
请任何人告诉我我怎么能想出这个。提前致谢。
New Add:根据struts.xml,如果有错误,(验证说有问题),页面应该重定向到index.jsp ,但是当没有为字段“名称”提供任何内容时,它仍然会转到 home.jsp 。
找到了解决方案
我添加到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。如何将其打印在我想要查看的位置(例如:表单底部)?
【问题讨论】:
-
您可能需要提供更多详细信息。考虑把你的项目放到 github 上让我们看看;没有太多的想法,它似乎应该工作。为了完整起见,它不会重定向到索引,而是会转发。
标签: java jakarta-ee struts2