struts2--校验器实例

struts校验是什么呢?

就是对一些字段进行是否为空或者长度的校验。比如登录的时候,我们需要对用户名和密码进行校验,往常,我们是通过在jsp页面写js脚本,然后进行用户名和密码的校验,如今,struts2为我们提供了一些常用的校验器,所以,我们只需要编写相应的action的配置文件,就可以进行用户名和密码的校验。

实例如下:

1、新建一个web工程,struts-validation,添加struts支持

2、新建login.jsp页面:

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
     <body>
	<form action="login.action" method="post">
  	    用户名:<input name="user.username"/><s:fielderror fieldName="user.username"></s:fielderror><br/>
  	    密码:<input type="password" name="user.password"/><s:fielderror fieldName="user.username"></s:fielderror><br/>
  	    年龄:<input name="user.age"/><s:fielderror fieldName="user.age"></s:fielderror><br/>
  	    <input type="submit" value="登录"/>
  	 </form>
     </body>
</html>

3、在src下新建com.etc.vo包,在包下新建User.java类:

package com.etc.vo;
public class User {
	private String username;
	private String password;
	private int age;
	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 int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}	
}

4、在src下新建com.etc.action,在包下新建LoginAction.java类:

package com.etc.action;
import com.etc.vo.User;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
	private static final long serialVersionUID = 5282197184219501014L;
	private User user;
	public String login(){
		return Action.SUCCESS;
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
}
5、配置struts.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<constant name="struts.custom.i18n.resources" value="message"></constant>
	<package name="login" extends="struts-default" namespace="/">
		<action name="login" class="com.etc.action.LoginAction" method="login">
			<result>/success.jsp</result>
			<!-- 校验失败之后返回的页面 -->
			<result name="input">/login.jsp</result>
		</action>
	</package>
</struts>    
6、在com.etc.action包下新建LoginAction-validation.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
	<!-- 属性 -->
	<field name="user.username">
		<!-- 属性校验器  requiredstring 必填的字符串,不能为空 -->
		<field-validator type="requiredstring">
			<!-- 去掉前后的空格 -->
			<param name="trim">true</param>
			<!-- 如果校验失败,就提示错误信息 -->
			<message>username should not be blank</message>
		</field-validator>
	</field>
	<field name="user.password">
		<!-- 属性校验器  requiredstring 必填的字符串,不能为空 -->
		<field-validator type="requiredstring">
			<!-- 去掉前后的空格 -->
			<param name="trim">true</param>
			<!-- 如果校验失败,就提示错误信息 -->
			<message>password should not be blank</message>
		</field-validator>
	</field>
	<!-- 长度校验器 -->
	<field name="user.password">
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">20</param>
			<param name="trim">true</param>
			<message>密码长度必须在${minLength}到${maxLength}之间</message>
		</field-validator>
	</field>
	<!-- 整数校验器 -->
	<field name="user.age">
        <field-validator type="int">
            <param name="min">1</param>
            <param name="max">100</param>
            <message>年龄必须在在${min}到${max}之间</message>
        </field-validator>
    </field>
</validators>
7、新建success.jsp页面:

<body>
登录成功
</body>
8、运行:http://localhost:8080/struts-validation/login.jsp


什么都不输入,直接点击登录按钮时,效果如下:


密码输入的长度不满足时,页面效果如下:



总结:

校验器的存在,使得我们不需要在jsp页面写js代码也可以实现简单的字段校验。

注意:

校验文件的名称:Action类名-validation.xml

校验器的种类:可以在struts 2.1 Liberary下的xwork-core-2.2.1.jar下的 com.opensymphony.xwork2.validator.validators下的default.xml中可以找到:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值