struts2.1 验证框架 嵌套验证 validation.xml invalid.fieldvalue User 例子【3】

package图

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>

	<package name="StrutsRE" extends="struts-default">

		<action name="ActionVld" class="org.strutRE.action.ActionVld">

			<result>index.jsp</result>

			<result name="input">/actionVld.jsp</result>

		</action>

		<action name="ActionVldV"

			class="org.strutRE.action.ActionVldV">

			<result>index.jsp</result>

			<result name="input">/actionVldV.jsp</result>

		</action>

	</package>

</struts>

 ActionVld-validation.xml   ActionVld的验证配置

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC

	"-//OpenSymphony Group//XWork Validator 1.02//EN"

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

<validators>

	<field name="user"><!-- user-要验证的类 -->

		<field-validator type="visitor"><!-- visitor就是用来验证的 -->

			<message>∵</message><!-- 错误提示,∵符号没有特别意思- -# -->

		</field-validator>

	</field>

</validators>

 org.strutRE.model.User.java

package org.strutRE.model;



import java.io.Serializable;

/**

 * Jul 4, 2008

 * 

 * @author ipinko@msn.com

 * 

 */

@SuppressWarnings("serial")

public class User implements Serializable {



	private String name;

	private int age;



	/**

	 * @return the name

	 */

	public String getName() {

		return name;

	}



	/**

	 * @param name

	 *            the name to set

	 */

	public void setName(String name) {

		this.name = name;

	}



	/**

	 * @return the age

	 */

	public int getAge() {

		return age;

	}



	/**

	 * @param age

	 *            the age to set

	 */

	public void setAge(int age) {

		this.age = age;

	}

}

 User-validation.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC

	"-//OpenSymphony Group//XWork Validator 1.02//EN"

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

<validators>

	<field name="name">

		<field-validator type="requiredstring">

			<message key="empty" />

		</field-validator>

	</field>

	<field name="age">

		<field-validator type="int">

			<message key="int" />

		</field-validator>

		<field-validator type="conversion"><!-- 转换出错提示 -->

			<message>请输入整数!/n</message>

		</field-validator>

	</field>

</validators>

 actionVld.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

	pageEncoding="utf-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

<html>

	<head>

		<title>actionVld.jsp</title>

	</head>

	<body>

		<br>

		<s:form action="ActionVld" theme="simple">

			<s:textfield name="user.name" label="name" />

			<s:textfield name="user.age" label="age" />

			<s:fielderror />

			<s:submit />

		</s:form>

	</body>

</html>

 讲解一下,上面的ActionVld-validation.xml验证的是action里面那个类,action名-validation.xml是默认的action验证配置文件名.User-validation.xml验证的是User类里的属性,类名-validation.xml是默认的类验证配置文件名.

而下面是除了默认的User-validation.xml外再加其他的User验证,User-context值-validation.xml是默认的配置文件名.

org.strutRE.action.ActionVldV.java跟org.strutRE.action.ActionVld.java一样

ActionVldV-validation.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC

	"-//OpenSymphony Group//XWork Validator 1.02//EN"

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

<validators>

	<field name="user">

		<field-validator type="visitor">

			<param name="context">v</param><!- v是除了默认之外的验证 ->

			<message>∵</message>

		</field-validator>

	</field>

</validators>

 加1个User-v-validation.xml , 其实只要这个User-v-validation.xml不要User-validation.xml也可以的.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC

	"-//OpenSymphony Group//XWork Validator 1.02//EN"

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

<validators>

	<field name="age">

		<field-validator type="int">

			<param name="min">18</param>

			<message key="ateen" />

		</field-validator>

	</field>

</validators>

 最后的actionVldV.jsp,刚才的actionVld.jsp用的是theme="simple"加<s:fielderror />,这个是用AJAX的.

<%@ page language="java" contentType="text/html; charset=utf-8"

	pageEncoding="utf-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

<html>

	<head>

		<title>actionVld.jsp</title>

		<sx:head />

	</head>

	<body>

		<br>

		<s:form action="ActionVldV" theme="xhtml">

			<s:textfield name="user.name" label="name" />

			<s:textfield name="user.age" label="age" />

			<sx:submit validate="true" />

		</s:form>

	</body>

</html>

 最后说一下资源文件

action下的package_zh_CN.properties&package_en_US.properties

资源文件图

model下的package_zh_CN.properties&package_en_US.properties

资源文件图

除了invalid.fieldvalue开头的都是普通的KEY

invalid.fieldvalue开头的action包里的invalid.fieldvalue.user.name跟model包里的invalid.fieldvalue.age一样效果.都是默认出错提示.

以上发表都是本人看官方或网上资料或自己尝试验证的,如有缺陷请多多指教,谢谢.

联系方式:ipinko@msn.com或ipinko@sina.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值