新建立一个Action
package com.struts2.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private String username; private String password; private int age; private Date brith; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBrith() { return brith; } public void setBrith(Date brith) { this.brith = brith; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String execute() throws Exception { return SUCCESS; } }
在同一包下建立 UserAction-validation.xml文件 UserAction为action的类名 -validation.xml为固定的 <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <!-- 校验文件的根元素 --> <validators> <!-- 校验Action的name属性 --> <field name="username"> <!-- 指定name属性必须满足必填规则 --> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入名字</message> </field-validator> <!-- 指定name属性必须匹配正则表达式 --> <field-validator type="regex"> <param name="expression"><!--[CDATA[(/w{4,25})]]></param> <message>您输入的用户名只能是字母和数字 ,且长度必须在4到25之间</message> </field-validator> </field> <!-- 校验Action的pass属性 --> <field name="password"> <!-- 指定pass属性必须满足必填规则 --> <field-validator type="requiredstring"> <param name="trim">true</param> <message>必须输入密码</message> </field-validator> <!-- 指定pass属性必须满足匹配指定的正则表达式 --> <field-validator type="regex"> <param name="expression"><![CDATA[(/w{4,25})]]--></param> <message>您输入的密码只能是字母和数字 ,且长度必须在4到25之间</message> </field-validator> </field> <!-- 指定age属性必须在指定范围内--> <field name="age"> <field-validator type="int"> <param name="min">1</param> <param name="max">150</param> <message>年龄必须在1到150之间</message> </field-validator> </field> <!-- 指定birth属性必须在指定范围内--> <field name="birth"> <field-validator type="date"> <!-- 下面指定日期字符串时,必须使用本Locale的日期格式 --> <param name="min">1900-01-01</param> <param name="max">2050-02-21</param> <message>生日必须在${min}到${max}之间</message> </field-validator> </field> </validators> 页面输出错误信息 <s:fielderror /> 在页面上加入<s:head/>标签可以使错误信息改为红色字体 jsp页面 <s:head/> <s:form action="user/user.action"> <s:textfield label="用户名" name="username" ></s:textfield> <s:password label="密码" name="password" ></s:password> <s:textfield label="年龄" name="age"></s:textfield> <s:textfield label="生日" name="brith"></s:textfield> <s:submit value="登录" align="left"></s:submit> </s:form> struts.xml文件 <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <package name="user" extends="struts-default" namespace="/user"> <action name="user" class="com.struts2.action.UserAction"> <result name="success">/success.jsp</result> <result name="input">/Login.jsp</result> </action> </package> </struts>