Dwz + Struts2 完成input驗證

來源:互聯網
上載者:User

 在做網頁開發的時候,經常有這樣的需求。就是使用者在文字框中輸入資訊後,當焦點離開的時候,我們需要立刻對使用者輸入的資訊進行有效性驗證。那麼,正常的情況下,要想實現這一功能,我們肯定是會用到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;}}



到此為止,驗證的準系統就完成了,不過,這樣做還是有一點點缺陷的,就是不能自訂提示資訊,這點還有待於完善。現在我還沒有找實現自訂提示的方法。如果碰巧看部落格的你知道如何?,希望留下實現的方法。在此,提前謝謝了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.