struts2基于xml配置文件的用户验证方法

问题!struts2基于xml配置文件的用户验证方法,比struts2用户验证validate方法更加简便的方法

环境要求:struts2的环境及相关的7个包。


1.基于XML配置文件的方式:

动作类中的所有方法进行验证:

在动作类的包中,建立一个名称为:动作简单类名-validation.xml ,比如要验证的动作类名是AddUserAction   AddUserAction-validation.xml  如;

                  


AddUserAction-validation.xml基本内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.3//EN"

"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">

<!--http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd 这个文件在xwork.jar中有,设置不联网的时候也能用的方法和设置struts2的方法一样,详情请看:http://blog.csdn.net/mr_li13/article/details/49391329 -->

<validators>
<field name="username">
<!-- 内置验证器都是定义好的,在xwork-core.jar com.opensymphony.xwork2.validator.validators包中的default.xml文件中 -->
<field-validator type="requiredstring"><!-- 不能为null或者""字符串,默认会去掉前后的空格 -->
<message>用户名不能为空</message>
</field-validator>
</field>

</validators>


动作类中指定的方法进行验证:
配置文件的名称书写有一定要求。
动作类名-动作名(配置文件中的动作名)-validation.xml

UserAction-user_add-validation.xml


2.案例说明:

实现ActionSupport的动作类AddUserAction.class

package com.itcast.web.addUser;

import java.io.Serializable;

import com.opensymphony.xwork2.ActionSupport;

public class AddUserAction extends ActionSupport implements Serializable {
	private String username;//用户名不能为空,还要去掉首尾空格
	private String password;//3~6位的数字
	
	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;
	}
//	动作方法的实现add
	public String add(){
		System.out.println("执行了user的add方法");
		return SUCCESS;
	}
	
	public String update(){
		System.out.println("执行了user的update方法");
		return SUCCESS;
	}

}

写基于xml验证器的数据验证文件:AddUserAction-validation.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
  		"-//OpenSymphony Group//XWork Validator 1.0.3//EN"
  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
	<field name="username">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户名不能为空!</message>
		</field-validator>
	</field>
	<field name="password">
		<field-validator type="regex">
			<!--  <![CDATA[]]>这是字符转义成普通字符  -->
			<param name="expression"><![CDATA[\d{3,6}]]></param>
			<message>密码请输入3~6位的数字</message>
		</field-validator>
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>密码不能为空!</message>
		</field-validator>
	</field>
</validators>

struts.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
			"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
			"http://struts.apache.org/dtds/struts-2.0.dtd">
			
<struts>
<!-- constant表示常量设置,设置配置文件自动更新,开发中很重要 -->
<constant name="struts.action.extension" value="action,,do"></constant>
<constant name="struts.devMode" value="true"></constant>


<!-- 数据验证 validate -->
<package name="validate" namespace="/validate" extends="struts-default">
	<action name="user_*" class="com.itcast.web.addUser.AddUserAction" method="{1}">
		<result name="success">/uploadSuccess.jsp</result>
		<result name="input">/{1}User.jsp</result>
	</action>
</package>
</struts>

addUser.jsp

 <%@ taglib uri="/struts-tags" prefix="s" %>
  <body>
  <!-- 验证信息数据回显 -->
   		<s:fielderror fieldName="username"></s:fielderror>
  		<s:fielderror fieldName="password"></s:fielderror>
    <form action="${pageContext.request.contextPath}/validate/user_add.action" method="post">
    	用户名:<input type="text" name="username"/><br/>
    	密码:<input type="text" name="password"/><br/>
    	<input type="submit" value="保存"/>
    </form>
  </body>

updateUser.jsp

 <%@ taglib uri="/struts-tags" prefix="s" %>
  <body>
    <!-- 修改信息数据回显 -->
   		<s:fielderror fieldName="username"></s:fielderror>
  		<s:fielderror fieldName="password"></s:fielderror>
    <form action="${pageContext.request.contextPath}/validate/user_update.action" method="post">
    	用户名:<input type="text" name="username" value="sds"/><br/>
    	密码:<input type="text" name="password" value="sdff"/><br/>
    	<input type="submit" value="保存"/>
    </form>
  </body>


验证通过跳转成功测试页面.uploadSuccess.jsp,否则就提示信息回显至原页面

<body>
    	成功验证!
  </body>

          


相关属性查看。

struts2基于xml配置文件的用户验证方法_第1张图片


三、基于xml验证文件,对action指定方法进行验证,如何做?

*动作类中指定的方法进行验证:
配置文件的名称书写有一定要求。
动作类名-动作名(配置文件中的动作名)-validation.xml

如:AddUserAction-user_add-validation.xml

注:跟上面的validation.xml文件一样,必须放在同一个包下。

         



你可能感兴趣的:(struts2.0,struts2用户数据验证,struts2数据验证方法)