验证用户添加或者修改时用户名的唯一性:

验证时机:用户名改变时,表单提交时。

1.jsp页面:(前端)

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<%@include file="/common/header.jsp"%>
<title>用户管理</title>
<script type="text/javascript" src="${basePath }js/datepicker/WdatePicker.js"></script>
<script type="text/javascript">
8 var vResult = false;
9 //校验帐号唯一
10 function doVerify(){
11 //1、获取帐号
12 var account = $("#account").val();
13 if(account != ""){
14 //2、校验
15 $.ajax({
16 url:"${basePath}nsfw/user_verifyAccount.action",
17 data: {"user.account": account},
18 type: "post",
19 async: false,//非异步
20 success: function(msg){
21 if("true" != msg){
22 //帐号已经存在
23 alert("帐号已经存在。请使用其它帐号!");
24 //定焦
25 $("#account").focus();
26 vResult = false;
27 } else {
28 vResult = true;
29 }
30 }
31 });
32 }
33 }
34 //提交表单
35 function doSubmit(){
36 var name = $("#name");
37 if(name.val() == ""){
38 alert("用户名不能为空!");
39 name.focus();
40 return false;
41 }
42 var password = $("#password");
43 if(password.val() == ""){
44 alert("密码不能为空!");
45 password.focus();
46 return false;
47 }
48 //帐号校验
49 doVerify();
50 if(vResult){
51 //提交表单
52 document.forms[0].submit();
53 }
54 }
55 </script>
</head>
<body class="rightBody">
<form id="form" name="form" action="${basePath }nsfw/user_add.action" method="post" enctype="multipart/form-data">
<div class="p_d_1">
<div class="p_d_1_1">
<div class="content_info">
<div class="c_crumbs"><div><b></b><strong>用户管理</strong>&nbsp;-&nbsp;新增用户</div></div>
<div class="tableH2">新增用户</div>
<table id="baseInfo" width="100%" align="center" class="list" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td class="tdBg" width="200px">所属部门:</td>
<td><s:select name="user.dept" list="#{'部门A':'部门A','部门B':'部门B' }"/></td>
</tr>
<tr>
<td class="tdBg" width="200px">头像:</td>
<td>
<input type="file" name="headImg"/>
</td>
</tr>
<tr>
<td class="tdBg" width="200px">用户名:</td>
<td><s:textfield id="name" name="user.name"/> </td>
</tr>
<tr>
80 <td class="tdBg" width="200px">帐号:</td>
81 <td><s:textfield id="account" name="user.account" onchange="doVerify()"/></td>
82 </tr>
<tr>
<td class="tdBg" width="200px">密码:</td>
<td><s:textfield id="password" name="user.password"/></td>
</tr>
<tr>
<td class="tdBg" width="200px">性别:</td>
<td><s:radio list="#{'true':'男','false':'女'}" name="user.gender"/></td>
</tr>
<tr>
<td class="tdBg" width="200px">角色:</td>
<td></td>
</tr>
<tr>
<td class="tdBg" width="200px">电子邮箱:</td>
<td><s:textfield name="user.email"/></td>
</tr>
<tr>
<td class="tdBg" width="200px">手机号:</td>
<td><s:textfield name="user.mobile"/></td>
</tr>
<tr>
<td class="tdBg" width="200px">生日:</td>
<td><s:textfield id="birthday" name="user.birthday" readonly="true" onfocus="WdatePicker({'skin':'whyGreen','dateFmt':'yyyy-MM-dd'});" /></td>
</tr>
<tr>
<td class="tdBg" width="200px">状态:</td>
<td><s:radio list="#{'1':'有效','0':'无效'}" name="user.state" value="1"/></td>
</tr>
<tr>
<td class="tdBg" width="200px">备注:</td>
<td><s:textarea name="user.memo" cols="75" rows="3"/></td>
</tr>
</table>
<div class="tc mt20">
<input type="button" class="btnB2" value="保存" onclick="doSubmit()" />
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" onclick="javascript:history.go(-1)" class="btnB2" value="返回" />
</div>
</div></div></div>
</form>
</body>
</html>

2.java代码:(action层):

 //校验用户帐号唯一
public void verifyAccount(){
try {
//1、获取帐号
if(user != null && StringUtils.isNotBlank(user.getAccount())){
//2、根据帐号到数据库中校验是否存在该帐号对应的用户
List<User> list = userService.findUserByAccountAndId(user.getId(), user.getAccount());
String strResult = "true";
if(list != null && list.size() > 0){
//说明该帐号已经存在
strResult = "false";
} //输出
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(strResult.getBytes());
outputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

3.在daoimpl里面实现findUserByAccountAndId方法:

 public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao {

     @Override
public List<User> findUserByAccountAndId(String id, String account) {
String hql = "FROM User WHERE account = ?";
if(StringUtils.isNotBlank(id)){
hql += " AND id!=?";
}
Query query = getSession().createQuery(hql);
query.setParameter(0, account);
if(StringUtils.isNotBlank(id)){
query.setParameter(1, id);
} return query.list();
} }

用户唯一性验证(ajax)的更多相关文章

  1. JQuery+Ajax实现唯一性验证、正则

    //唯一性验证 public function Only(){ //实例化模型层 $model = new User(); $res = $model->Only(); echo $res; } ...

  2. DWZ主从表界面唯一性验证(自写js)(一)

    最近在项目中遇到一个问题,它的需求是: 利用DWZ的主从表结构批量添加课程信息,需要在触发课程代码文本框的离开事件时验证: 1.是否选择学院. 2.数据库里是否已存在该课程代码. 3.多条数据添加时, ...

  3. IdentityServer4 使用OpenID Connect添加用户身份验证

    使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...

  4. 2_MVC+EF+Autofac(dbfirst)轻型项目框架_用户权限验证

    前言 接上面两篇 0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架 与 1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例) .在第一篇中介 ...

  5. Odoo 二次开发教程(四)-只读、唯一性验证和ORM方法介绍

    一.只读和唯一性验证 只读的设置有两种方法,一种是实在字段定义时设置为只读,第二种是在页面视图中进行设置. 接前例,我们将学生(tech.student)的名字name字段设置成只读. 方法一:字段定 ...

  6. 从零开始学 Java - Spring AOP 实现用户权限验证

    每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就 ...

  7. Validator验证Ajax提交表单的方法

    Validator验证Ajax提交表单的方法 转自:http://hunanpengdake.iteye.com/blog/1671360 当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form ...

  8. MVC+EF 自定义唯一性验证

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    本篇提供二种方法,希望大家喜欢 1.自定义验证属性 ...

  9. android loginDemo +WebService用户登录验证

        android loginDemo +WebService用户登录验证 本文是基于android4.0下的loginActivity Demo和android下的Webservice实现的.l ...

随机推荐

  1. 转载:Java知多少(8)类库及其组织结构

    转载地址:http://www.cnblogs.com/Coda/p/4346151.html Java知多少(8)类库及其组织结构 Java 官方为开发者提供了很多功能强大的类,这些类被分别放在各个 ...

  2. html-webpack-plugin 中使用 title选项设置模版中的值无效

    原文地址:https://segmentfault.com/q/1010000004555431 webpack.config.js配置: var webpack = require("we ...

  3. 时尚设计div+css免费模板

    时尚设计div+css免费网页模板,时尚设计,div+css. http://www.huiyi8.com/moban/

  4. BZOJ 1647 [Usaco2007 Open]Fliptile 翻格子游戏:部分枚举 位运算

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1647 题意: 在一个n*m(1 <= n,m <= 15)的棋盘上,每一个格子 ...

  5. POJ 2096 Collecting Bugs:期望dp

    题目链接:http://poj.org/problem?id=2096 题意: 有一个程序猿,他每天都会发现一个bug. bug共有n个种类.属于某一个种类的概率为1/n. 有s个子系统,每个bug属 ...

  6. swoole_table

    Memory Swoole提供了7个内存操作的模块,在多进程编程中可以帮助开发者实现一些特殊的需求. swoole_table 是基于共享内存和锁实现的超高性能,并发数据结构

  7. JavaMail API的应用

    JavaMail API 是一个用于阅读.编写和发送电子消息的可选包(标准扩展),用来创建邮件用户代理(Mail User Agent,MUA)类型程序. JavaMail API 需要 JavaBe ...

  8. 【Python】Python figure显示的两种方式

    1. 两种方式: 终端输出图像新窗口输出图像 2. 终端输出命令: %matplotlib inline 新窗口输出命令: %matplotlib qt5 注意此两个语句是命令行输入,若在spyder ...

  9. SpringMVC之二:配置 Spring MVC

    Servlet 3.0规范在2009年12月份就发布了,因此很有可能你会将应用部署到支持Servlet 3.0的Servlet容器之中,如tomcat7.0及以上.在Servlet 3 规范中,可以使 ...

  10. cocos2dx 3.0 用ClippingNode做游戏的新手引导

    转自:http://blog.csdn.net/star530/article/details/20851263 本篇介绍的是用ClippingNode 做游戏的新手引导,额,或者说是做新手引导的一种 ...