用Command实现校验器

原创 2015年07月08日 20:17:48

最近工作中遇到许多校验的数据,一直用if-else去校验很不灵活,于是用Command方式去实现

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
			            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
			            http://www.springframework.org/schema/aop   
			            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
	default-autowire="byName">
	
	<bean id="uerVerification" class="com.steven.UserVerification" />
	<bean id="mobileVerification" class="com.steven.MobileVerification" />
	<bean id="codeVerification" class="com.steven.CodeVerification" />
	<bean id="orderVerification" class="com.steven.OrderVerification" />
	
	<bean id="orderVerificationMap" class="java.util.HashMap" > 
		<constructor-arg>
			<map>
				<entry key="check" value-ref="orderVerification" />
			</map>
		</constructor-arg>
	</bean>
	
	<bean id="codeVerificationMap" class="java.util.HashMap" > 
		<constructor-arg>
			<map>
				<entry key="check" value-ref="codeVerification" />
			</map>
		</constructor-arg>
	</bean>
	
	<bean id="mobileVerificationMap" class="java.util.HashMap" > 
		<constructor-arg>
			<map>
				<entry key="check" value-ref="mobileVerification" />
			</map>
		</constructor-arg>
	</bean>
	
	<bean id="uerVerificationMap" class="java.util.HashMap" > 
		<constructor-arg>
			<map>
				<entry key="check" value-ref="uerVerification" />
			</map>
		</constructor-arg>
	</bean>
	
	<!-- 实现类 -->
     <bean id="gdActivityServiceInvoker" class="com.test.ServiceInvoke" >
    	<property name="verifyMap">
			<map>
				<entry key="checkUer" value-ref="uerVerificationMap" /> 
				<entry key="checkMobile" value-ref="mobileVerificationMap" />
				<entry key="checkCode" value-ref="codeVerificationMap"/>
				<entry key="checkOrder" value-ref="orderVerificationMap"/>
			</map>
		</property>
    </bean>
	
</beans>
注:上述配置文件,可以灵活的使用校验器,也可以灵活的增加或者删除校验器,并且支持执行校验器特定的方法。

public abstract class ActivityServiceInvoker {
	
	/**
	 * 校验参数
	 * verifyType 表示特定的校验器
	 */
	public abstract ActivityResult checkParamter(String verifyType,ActivityParamter paramter);
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ActivityResult execute(Verification verification, String method, ActivityParamter paramter) throws Exception {
		Class clazz = verification.getClass();
		Method clzMethod = clazz.getDeclaredMethod(method,ActivityParamter.class);
		
		return (ActivityResult) clzMethod.invoke(verification, paramter);//执行特定的校验方法
	}
	
}

每一个校验器可以继承ActivityServiceInvoker这个类,然后复写public abstract ActivityResult checkParamter(String verifyType,ActivityParamter paramter);这个方法即可。

public class OrderServiceInvokerImpl  extends ActivityServiceInvoker{
	
	private LinkedHashMap<String,HashMap<String, Verification>> verifyMap;//可以灵活的注入校验器
	
	private static final Log LOG = LogFactory.getLog(OrderServiceInvokerImpl.class);
	
	public ActivityResult checkParamter(String verifyType,ActivityParamter paramter){
		//在这里进行数据校验
		return result;
	}

	public void setVerifyMap(LinkedHashMap<String, HashMap<String, Verification>> verifyMap) {
		this.verifyMap = verifyMap;
	}
	
}
每一个实现类里,可以配置一个verifyMap来灵活的校验。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

简单实现修改密码校验器

简单代码实现密码输入框校验

md5&amp;sha1校验器

  • 2016-01-09 11:30
  • 28KB
  • 下载

校验器实例

index.jsp "> My JSP 'ind

银行卡校验器

  • 2015-08-12 17:52
  • 444KB
  • 下载

MD5、SHA1码校验器

  • 2015-07-17 15:27
  • 28KB
  • 下载

struts2提供的校验器列表

系统提供的校验器如下: required (必填校验器,要求field的值不能为null) requiredstring (必填字符串校验器,要求field的值不能为null,并且长度大于0,默认...

MD5校验器

  • 2014-11-12 23:02
  • 28KB
  • 下载

MD5校验器.exe

  • 2014-08-05 11:04
  • 28KB
  • 下载

Struts2内置校验器

struts2提供了大量的内置验证器,分别介绍如下 1.必填验证器 RequiredFieldvalidator验证器检查指定的字段是否为null。该验证器可以接受一个参数:fieldName,指...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)