Heim >Web-Frontend >js-Tutorial >Verwenden Sie struts2+Ajax+jquery, um zu überprüfen, ob der Benutzername registriert wurde_jquery

Verwenden Sie struts2+Ajax+jquery, um zu überprüfen, ob der Benutzername registriert wurde_jquery

WBOY
WBOYOriginal
2016-05-16 15:10:021121Durchsuche

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> 
Hier verwende ich die Funktion Jquery.post(url,args,function(data){..}), um eine Ajax-Anfrage an die angegebene URL zu senden und die Parameter args zu übertragen, und verwende schließlich eine Rückruffunktion, um die zu verarbeiten Fordern Sie die Ergebnisdaten an und geben Sie sie zurück.


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

Hinweis: Hier verwende ich die ModelDriven-Methode, um Formulardaten abzurufen. Bei Verwendung von Ajax wird ein userNiName (Spitzname) direkt übergeben, daher habe ich in UserAction eine private Zeichenfolgenvariable userNiName hinzugefügt und die Set-Methode festgelegt. Der Wert konnte nicht übergeben werden und es wurde eine Null übergeben, also habe ich die private Variable gelöscht und dann user.getUserNiName() verwendet, um sie direkt abzurufen


UserService (weggelassen).


Benutzerklasse (weggelassen).


UserDao:

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=&#63;", userNiName);
if(list!=null&&list.size()>0){
System.out.println("list:"+list.get(0));
return list.get(0);
}
return null;
}
}
struts.xml:

<&#63;xml version="1.0" encoding="UTF-8" &#63;>
<!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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn