Gunakan struts2+Ajax+jquery untuk mengesahkan sama ada nama pengguna telah didaftarkan_jquery

WBOY
Lepaskan: 2016-05-16 15:10:02
asal
1061 orang telah melayarinya

Bacaan yang disyorkan: Penyepaduan rangka kerja JQuery+Ajax+Struts2+Hibernate untuk mencapai pendaftaran log masuk yang lengkap

Mengenai keperluan pendaftaran pengguna dalam modul pengguna, biasanya perlu untuk mengesahkan sama ada nama pengguna telah didaftarkan, saya baru sahaja menulis keperluan ini hari ini dan menyiarkan kod terperinci dan masalah yang dihadapi Apabila menggunakan struts2+ajax , biasanya kami akan mengembalikan data jenis json, tetapi seperti contoh di atas, kami hanya berharap untuk mengembalikan 1 dan 0 untuk memudahkan penghakiman berikutnya. Tidak perlu mengembalikan jenis json, hanya mengembalikan rentetan teks

regist.jsp (hanya bahagian disediakan di sini):

<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> 
Salin selepas log masuk
Di sini saya menggunakan fungsi Jquery.post(url,args,function(data){..}) untuk menyerahkan permintaan ajax ke url yang ditentukan, dan membawa parameter args, dan akhirnya menggunakan fungsi panggil balik untuk memproses minta dan kembalikan data hasil.


UserAction:

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

Salin selepas log masuk
Nota: Di sini saya menggunakan kaedah ModelDriven untuk mendapatkan data borang, dan apabila menggunakan ajax, userNiName (nama panggilan) terus dilalui, jadi saya menambah rentetan peribadi userNiName dalam UserAction dan menetapkan kaedah set. nilai itu tidak boleh diluluskan, dan apa yang diluluskan adalah batal, jadi saya memadamkan pembolehubah peribadi dan kemudian menggunakan user.getUserNiName() untuk mendapatkannya secara terus


Perkhidmatan Pengguna(diabaikan).


Kelas pengguna (diabaikan).


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;
}
}
Salin selepas log masuk

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> 
Salin selepas log masuk
Perhatikan bahawa dalam teg hasil, taip="strim".


Akhirnya, dengan cara ini, saya sudah biasa menggunakan pernyataan output semasa menyahpepijat, tetapi setiap kali saya menambah pernyataan output, saya perlu memulakan semula Tomcat, yang sangat menjengkelkan Jadi saya merujuk kepada kaedah dalam talian dan meletakkan conf-. >pelayan dalam direktori pemasangan Tmocat Dengan menambahkan kod berikut di bawah teg


<!--docBase就是你的项目工程所在的全路径,path就是写你的项目名,reloadable="true",可以自动重新加载修改过的class文件-->
<Context debug="0" docBase="D:\Tomcat 7.0\webapps\SSH_shop01" path="/SSH_shop01" reloadable="true" /> 
Salin selepas log masuk
Perlu ambil perhatian bahawa selepas menyahpasang projek dalam Tomcat, anda mesti kembali dan memadamkan label ini

Editor akan memperkenalkan anda kepada pengetahuan menggunakan struts2+Ajax+jquery untuk mengesahkan sama ada nama pengguna telah didaftarkan, saya harap ia akan membantu anda!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!