本博客主要是在本人收集网上一些精彩技术文章,有时可能因疏忽转载的时候没有说明转载出处和作者,如果您认为哪篇文章侵犯了你的版权,请通知本人: EMAIL:fgfd0@163.com QQ:28002602 欢迎您光临本博客!
查看文章 |
ajax、spring和struts结合实现无刷新验证用户名是否存在
2008年03月29日 星期六 21:03
1、jsp页面: <%@ page language="java" contentType="text/html;charset=utf-8"%> <html> <head> <TITLE>Ajax验证用户名是否存在例子</TITLE> <script> //设一个变量 var XMLHttpReq=false; //创建一个XMLHttpRequest对象 function createXMLHttpRequest(){ if(window.XMLHttpRequest){ //Mozilla XMLHttpReq=new XMLHttpRequest(); } else if(window.ActiveXObject){ try{ XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){} } } } //发送请求函数 function send(url){ createXMLHttpRequest(); XMLHttpReq.open("get",url,true); XMLHttpReq.onreadystatechange=proce; //指定响应的函数 XMLHttpReq.send(null); //发送请求 } function proce(){ if(XMLHttpReq.readyState==4){ //对象状态 if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息 <!--测试读取xml开始--> var root=XMLHttpReq.responseXML; var res=root.getElementsByTagName("content")[0].firstChild.data; //window.alert(res); document.getElementById("feedback_info").innerHTML = res; <!--测试读取xml结束--> //var xmlReturn = XMLHttpReq.responseText; //window.alert(xmlReturn); }else{ window.alert("所请求的页面有异常"); } } } //身份验证 function check(){ var name=document.getElementById("name").value; if(name==""){ alert("请输入姓名!"); return false; } else{ //send('login?name='+name); document.getElementById("load").style.display=''; send('checkUserName.do?name='+name); document.getElementById("load").style.display='none'; } } </script> </head> <body> <form action="login" method="post"> <table> <tr><td>姓名: <input id="name" type="text" name="name"/><label id="feedback_info" style="color:#FF0000"> </label><p> <div id=load style="display:none; position:absolute;right:0px;top:0px;background:#FF5B5B;border:1px solid">正在验证用户名,请稍后……</div><p> <input type="button" value="检测!" onClick="check()"/> </td> </tr> </table> </form> </body> </html> 2、action: import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import 导入ITestService包; /** * MyEclipse Struts * Creation date: 03-29-2007 * * XDoclet definition: * @struts.action scope="request" validate="true" */ public class CheckUserNameAction extends Action { /* * Generated Methods */ private ITestService myService; /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub try { request.setCharacterEncoding("utf-8"); } catch (Exception e) { e.printStackTrace(); } try{ String msgStr=""; response.setContentType("text/xml;charset=GB2312"); response.setHeader("Cache-Control","no-cache"); String name=(String)request.getParameter("name"); System.out.println("name = "+name); int amount=myService.checkUserName(name); //if("gong".equals(name)){ //找查数据库中有无该用户名 if(amount==11){ msgStr ="对不起,此用户名已经存在,请更换用户名注册!"; }else{ msgStr ="用户未被注册,可以使用!"; } response.getWriter().println("<?xml version='1.0' encoding='GB2312' ?>"); response.getWriter().println("<root>"); response.getWriter().println("<content>"); response.getWriter().print(msgStr); response.getWriter().println("</content>"); response.getWriter().println("</root>"); response.getWriter().close(); }catch(Exception ex){ } return null; } public void setMyService(ITestService myService) { this.myService = myService; } } 3、struts-config.xml的配置: <action path="/checkUserName" scope="request" type="org.springframework.web.struts.DelegatingActionProxy" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/> </plug-in> 4、applicationContext.xml的配置(在这里不说明数据源的配置): <bean id="testDAOTarget" class="包名.TestDAOImpl"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="testDAO" parent="adstructTxDefinition"> <property name="target"> <ref local="testDAOTarget"/> </property> </bean> <!-- SERVICE实现类 --> <bean id="testServiceTarget" class="包名.TestServiceImpl"> <property name="myDAO"> <ref local="testDAO"/> </property> </bean> <!-- 加入AOP的SERVICE接口 --> <bean id="testService" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <value>包名.ITestService</value> </property> <property name="target"> <ref local="testServiceTarget"/> </property> </bean> <bean name="/checkUserName" class="包名.CheckUserNameAction"> <property name="myService"> <ref local="testService"/> </property> </bean>
|
最近读者: