我是Struts2的新成員。我想用一個簡單的「註冊」表單來使用驗證框架。這裏是我的JSP頁面表單元素;Struts2驗證框架不驗證字段
<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 age;
- 字符串電子郵件;變量與getter和setters。而它的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,但沒事的時候給出了字段「名稱」,仍然會轉到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">
但它顯示在表格的頂部,我不知道爲什麼沒有打印爲actionError
。我如何得到它打印在我想要查看的地方(例如:表單底部)?
您可能需要提供更多詳細信息。考慮把你的項目放在github上,這樣我們可以看看;沒有太多的想法,它似乎應該工作。爲了完整性,它不會重定向到索引,而是會轉發。 –