Strtus2_14_Struts2 验证框架

模拟一个注册验证的过程,来了解struts验证框架的使用。


Create the Action class.


新建  用户实体User 属性有:userName,name,age,email,homePage 并生成get,set以及toString

新建  Action类:RegisterAction  ,添加属性user.并生成默认方法。

	private User user;
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	@Override
	public String execute() throws Exception {
		System.out.println("传入的对象:"+user);
		return SUCCESS;
	}

 Create the input form.


 新建  register.jsp:

<s:form action="/registerAction" method="post">
	<s:textfield name="user.userName" label="用户名"></s:textfield>
	<s:textfield name="user.name" label="真实性名"></s:textfield>
	<s:textfield name="user.age" label="年龄"></s:textfield>
	<s:textfield name="user.email" label="注册邮箱"></s:textfield>
	<s:textfield name="user.homePage" label="主页"></s:textfield>
	<s:submit value="注册"></s:submit>
</s:form>
</body>

成功界面:

<body>
注册成功!用户名:${user.userName }
</body>

Create the validators

需要注意的是,

1.文件名字格式:<ActionClassName>-validation.xml 

2.需要在开头写描述:<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" 
                                         "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

3.文件位置:放到ActionClass所在的包中

4.注意语法。

RegisterAction-validation.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" 
	"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
    <field name="user.userName">
        <field-validator type="requiredstring">
            <message>用户名不能为空</message>
        </field-validator>
        <field-validator type="stringlength">
        	<param name="minLength">6</param>
        	<param name="maxLength">10</param>
        	<message>用户名必须${minLength}到${maxLength}位</message>
        </field-validator>
    </field>
    <field name="user.name">
        <field-validator type="requiredstring">
            <message>请输入真实姓名</message>
        </field-validator>
    </field>
    <field name="user.age">
        <field-validator type="int">
        	<param name="min">18</param>
            <message>年龄必须满18岁</message>
        </field-validator>
    </field>
        <field name="user.email">
        <field-validator type="requiredstring">
            <message>请输入邮箱</message>
        </field-validator>
        <field-validator type="email">
            <message>邮箱格式不对</message>
        </field-validator>
    </field>
    <field name="user.homePage">
        <field-validator type="requiredstring">
            <message>请输入主页</message>
        </field-validator>
        <field-validator type="url">
            <message>主页格式不对</message>
        </field-validator>
    </field>
</validators>
	

struts.xml

确保有名字为"input"的action请求该需要验证的界面。


	<package name="hello" extends="struts-default" >
		<action name="registerAction" class="com.java.action.RegisterAction">
			<result name="input">register.jsp</result>
			<result name="success">success.jsp</result>
		</action>
	</package>

测试:

什么都不输提交:

用户名位数不对:

年龄不够18:

邮箱格式不对:

主页url格式不对

都正确:

控制台:

猜你喜欢

转载自blog.csdn.net/qq_27163329/article/details/81609512