您的位置:首页 > 编程语言 > Java开发

Struts2的输入校验(一)

2011-03-06 16:57 288 查看
新建立一个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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息