Heim >Web-Frontend >js-Tutorial >Verwenden Sie struts2+Ajax+jquery, um zu überprüfen, ob der Benutzername registriert wurde_jquery
Empfohlene Lektüre: JQuery+Ajax+Struts2+Hibernate-Framework-Integration zur Erzielung einer vollständigen Login-Registrierung
In Bezug auf die Benutzerregistrierungsanforderungen im Benutzermodul ist es normalerweise erforderlich, zu überprüfen, ob der Benutzername heute registriert und der detaillierte Code und die aufgetretenen Probleme veröffentlicht wurden gibt JSON-Typdaten zurück, aber wie im obigen Beispiel hoffen wir nur, eine 1 und 0 zurückzugeben, um die spätere Beurteilung zu erleichtern. Es ist nicht erforderlich, den JSON-Typ zurückzugeben, sondern nur eine Textzeichenfolge
regist.jsp (hier wird nur der 3f1c4e4b6b16bbbd69b2ee476dc4f83a-Teil bereitgestellt):
<script type="text/javascript"> $(function() { $("#userNiName").blur(function() { var val = $(this).val(); val = $.trim(val); var $this = $(this); if (val != "") { //把当前节点后面的所有 font 兄弟节点删除 $this.nextAll("font").remove(); var url = "user_checkName"; var args = { "userNiName" : val, "time" : new Date() }; $.post(url, args, function(data) { //表示可用 if (data == "1") { $this.after("<font color='green'>用户名可用!</font>"); } //不可用 else if (data == "0") { $this.after("<font color='red'>用户名已被注册!</font>"); } //服务器错误 else { alert("服务器错误!"); } }); } else { $(this).val(""); $this.focus(); } }); }) </script>
Benutzeraktion:
public class UserAction extends ActionSupport implements ModelDriven<User>{ private User user=new User(); private UserService userService; private InputStream inputStream; public InputStream getInputStream() { return inputStream; } //检验用户昵称是否存在 public String checkName() throws UnsupportedEncodingException{ System.out.println("进入ajax检验"); String userNiName=user.getUserNiName(); if(userService.findUserByName(userNiName)==null){ inputStream=new ByteArrayInputStream("1".getBytes("UTF-8")); }else{ inputStream=new ByteArrayInputStream("0".getBytes("UTF-8")); } return "ajax_succ"; } @Override public User getModel() { return user; } public void setUserService(UserService userService) { this.userService = userService; } }
UserService (weggelassen).
Benutzerklasse (weggelassen).
package com.wang.shop.user.dao; import java.util.List; import org.springframework.orm.hibernate4.support.HibernateDaoSupport; import com.wang.shop.user.entity.User; public class UserDao extends HibernateDaoSupport{ /** * 通过用户昵称查询User * @param userNiName * @return */ public User findUserByName(String userNiName){ List<User> list = (List<User>) this.getHibernateTemplate().find("select u from User u where u.userNiName=?", userNiName); if(list!=null&&list.size()>0){ System.out.println("list:"+list.get(0)); return list.get(0); } return null; } }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="shop" namespace="/" extends="struts-default"> <!-- UserAction --> <action name="user_*" class="userAction" method="{1}"> <result name="regist_succ">/WEB-INF/jspForUser/login.jsp</result> <result type="stream" name="ajax_succ"> <param name="contentType">text/html</param> <param name="inputStream">inputStream</param> </result> </action> </package> </struts>Beachten Sie, dass Sie im Ergebnis-Tag Folgendes eingeben: „stream“.
Schließlich bin ich es übrigens gewohnt, beim Debuggen Ausgabeanweisungen zu verwenden, aber jedes Mal, wenn ich eine Ausgabeanweisung hinzufüge, muss ich Tomcat neu starten, was sehr ärgerlich ist. Deshalb habe ich auf die Online-Methode verwiesen und conf- eingegeben. >server im Tmocat-Installationsverzeichnis. Durch Hinzufügen des folgenden Codes unter dem Tag f7e6dec31ab1a0471d06c55afaca8d77 können Sie die Klasse (geringfügige Änderungen) ändern, ohne den Server neu zu starten
<!--docBase就是你的项目工程所在的全路径,path就是写你的项目名,reloadable="true",可以自动重新加载修改过的class文件--> <Context debug="0" docBase="D:\Tomcat 7.0\webapps\SSH_shop01" path="/SSH_shop01" reloadable="true" />Es ist wichtig zu beachten, dass Sie nach der Deinstallation des Projekts in Tomcat zurückkommen und dieses Label löschen müssen
Der Herausgeber führt Sie in die Verwendung von struts2+Ajax+jquery ein, um zu überprüfen, ob der Benutzername registriert wurde. Ich hoffe, es wird Ihnen hilfreich sein!