Dwz + Struts2 完成input验证

 在做网页开发的时候,经常有这样的需求。就是用户在文本框中输入信息后,当焦点离开的时候,我们需要立刻对用户输入的信息进行有效性验证。那么,正常的情况下,要想实现这一功能,我们肯定是会用到ajax的,但是,如果你使用了DWZ,那么,要实现这一功能将不再那么繁琐。你不需要写任何ajax的代码,而仅仅需要在需要的验证的input标签上加入一个remote属性。下面给大家演示一个使用Dwz + Struts2 完成用户名验证的实例。


首先,看login.jsp页面代码

<%@page contentType="text/html; charset=utf-8"%>
<%@ include file="/page/common/common.jsp"%>

<div class="pageContent">

	<form class="pageForm required-validate">
		<div class="pageFormContent" layoutH="58">
			<div class="unit">
				<label>用户名:</label> <input type="text" id="userName" name="userName"
					value="" size="30" class="required " 
					remote="" />
			</div>
			<div class="unit">
				<label>密码:</label> <input type="text" name="password"
					value="" size="30"   class="required" />
			</div>
		</div>
	</form>
</div>
	
<script defer>
	
	if($("#userName").attr("remote") != "undefined"){
		$("#userName").attr("remote","${contextPath }/user/validateUserAction.action?time="+ new Date().getTime());
	}
</script>

解释一下,我为什么使用了最下面的javaScript代码。如果我直接直接把链接“${contextPath }/user/validateUserAction.action”写到input的remote属性中,那么会出现不提交的情况。我怀疑是缓存的事,不过没有去验证。当我在链接后面加上时间戳以后,这种情况就木有发生过。


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="user" namespace="/user"
		extends="struts-default">
		
		<action name="validateUserAction" class="userAction" method="validateUser" >
			<result name="validate_false">/page/validate_false.html</result>
			<result name="validate_true">/page/validate_true.html</result>
		</action>
		
	</package>

</struts>

PS:validate_false.html中只有false一个单词,同样validate_true.html里也只有true一个单词。


配置action的代码

<?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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
           http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">


	<bean id="userAction" class="user.action.UserAction"
		scope="prototype">
	</bean>
	
</beans>

UserAction 代码

package user.action;

import common.tool.web.BaseAction;

public class UserAction extends BaseAction {
	
		private String userName="";
		private String password="";
		
		public String validateUser()
		{
			if("admin".equals(userName) ){
				return "validate_true";
			}
			return "validate_false";
		}

		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;
		}
		
}

效果图:

Dwz + Struts2 完成input验证

到此为止,验证的基本功能就完成了,不过,这样做还是有一点点缺陷的,就是不能自定义提示信息,这点还有待于完善。现在我还没有找实现自定义提示的方法。如果碰巧看博客的你知道如何实现,希望留下实现的方法。在此,提前谢谢了。

Dwz + Struts2 完成input验证

上一篇:菜鸟学Java(十七)——Jboss瘦身


下一篇:UML中的关系图解