$(function() { $("#userNiName").blur(function() {var val = $(this).val();val = $.trim(val);var $this = $(this);if (val != "") {//删除当前节点后面的所有字体兄弟节点 $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 ( "用户名可用!");}//不可用 else if (data == "0") {$this.after("用户名已注册!");}//服务器错误 else {alert("服务器错误! ");}});} else {$(this).val("");$this.focus();}});})这里我使用了 www.sychzs.cn(url ,args,function( data){..}) 函数向指定url提交ajax请求,并携带参数args,最后使用回调函数处理请求并返回结果数据。
UserAction:
public class UserAction extends ActionSupport Implements ModelDriven{private User user=new User();private UserService userService;private InputStream inputStream;public InputStream getInputStream() {return inputStream;}//检查用户昵称是否存在 public String checkName( ) 抛出 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";}@Overridepublic User getModel() {return user;}public void setUserService(UserService userService) {this.userService = userService;}}注意:这里我使用ModelDriven方法获取表单数据,而使用ajax时,直接传了一个userNiName(昵称)过来,所以我是一个私有字符串UserAction中添加了变量userNiName并设置了set方法。结果传不了值,传了一个null,于是我删除了私有变量,然后直接使用user.getUserNiName()获取。知道了。记住。
UserService(略)。
用户类别(省略)。
UserDao:
package com.wang.shop.user.dao;导入java.util.List;导入org.springframework.orm.hibernate4.support.HibernateDaoSupport;导入com.wang.shop.user.entity.User;公共类UserDao extends HibernateDaoSupport{/*** 通过用户昵称查询用户* @param userNiName* @return*/public User findUserByName(String userNiName){List list = (List) 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) ;}返回null;}}struts.xml:
/WEB-INF/jspForUser/login.jsptext/htmlinputStream请注意,在结果标签中,输入=“stream”。
最后顺便说一下,我在调试的时候习惯使用输出语句,但是每次添加输出语句都需要重启Tomcat,很烦人。于是我参考网上的方法,将Tmocat安装在conf->server目录下。通过在xml中的标签下添加以下代码,无需重启服务器即可修改类(小修改):
需要注意的是,在Tomcat中卸载项目后,一定要回来删除这个标签。
小编给大家介绍一下使用struts2+Ajax+jquery验证用户名是否已注册的知识。希望对您有所帮助!