用户唯一性验证(ajax)
验证用户添加或者修改时用户名的唯一性:
验证时机:用户名改变时,表单提交时。
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> - 新增用户</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()" />
<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)的更多相关文章
- JQuery+Ajax实现唯一性验证、正则
//唯一性验证 public function Only(){ //实例化模型层 $model = new User(); $res = $model->Only(); echo $res; } ...
- DWZ主从表界面唯一性验证(自写js)(一)
最近在项目中遇到一个问题,它的需求是: 利用DWZ的主从表结构批量添加课程信息,需要在触发课程代码文本框的离开事件时验证: 1.是否选择学院. 2.数据库里是否已存在该课程代码. 3.多条数据添加时, ...
- IdentityServer4 使用OpenID Connect添加用户身份验证
使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...
- 2_MVC+EF+Autofac(dbfirst)轻型项目框架_用户权限验证
前言 接上面两篇 0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架 与 1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例) .在第一篇中介 ...
- Odoo 二次开发教程(四)-只读、唯一性验证和ORM方法介绍
一.只读和唯一性验证 只读的设置有两种方法,一种是实在字段定义时设置为只读,第二种是在页面视图中进行设置. 接前例,我们将学生(tech.student)的名字name字段设置成只读. 方法一:字段定 ...
- 从零开始学 Java - Spring AOP 实现用户权限验证
每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就 ...
- Validator验证Ajax提交表单的方法
Validator验证Ajax提交表单的方法 转自:http://hunanpengdake.iteye.com/blog/1671360 当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form ...
- MVC+EF 自定义唯一性验证
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本篇提供二种方法,希望大家喜欢 1.自定义验证属性 ...
- android loginDemo +WebService用户登录验证
android loginDemo +WebService用户登录验证 本文是基于android4.0下的loginActivity Demo和android下的Webservice实现的.l ...
随机推荐
- nginx websocket
前两天折腾了下socketio,部署完发现通过nginx代理之后前端的socket无法和后端通信了,于是暴查一通,最后解决问题: location / { proxy_pass http://127. ...
- T58
他们投产的新轿车广获传媒报道.The launch of their new saloon received much media coverage.法律规定禁止近亲结婚.Marriages in p ...
- 初入 CLR - 阅读《CLR via C#》笔记
最近买了一本书<CLR via C#>阅读了第一章 - CLR 的执行模型,对 .NET 一直提到的 CLR 和 .NET Framework 有了一个大致的了解.我理解主要体现在: ■ ...
- 常用SASS封装
结合Compass库和工作总结,列出了项目中最为常用的SASS片段.内容收集于网络,我进行了简单整理并测试正常,可以根据实际项目情况进行取舍,值得学习或直接应用,感谢! //重置浏览器默认样式@imp ...
- Python连接Mysql数据库_20160928
python版本 2.7.1,python 连接mysql需要安装MYSQLdb模块 安装方法一种是cmd pip命令安装 pip install MySQLdb 一种是网上下载python MYSQ ...
- BZOJ4307: Maishroom & Class
感觉有一点题面没有说得特别明确,就是一个人代替了其他人之后,另一个可以被他代替的人就不能让他来代替自己了. 每个人向自己可以代替的人连边,额外增加一个源点$r$向所有助教连边.第一问答案是$r$不能到 ...
- final修饰变量
final修饰基本类型变量 当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变 final修饰引用类型变量 当使用final修饰引用类型变量时,它保存的仅仅是一 ...
- Mongo可视化工具基本操作
一.可视化工具界面(字段名可以不加引号) 二.查询(query)1.日期如:"F1":ISODate("2017-07-26T16:00:00Z")2.条件(& ...
- gitea (git服务器), 修改配置,更换IP地址
使用的gitea项目管理git 服务器 (可以不用备份项目, 通过直接修改gitea配置, 直接使用) 步骤1 可以直接访问项目, 步骤2 ,如果已有项目IP地址固定为192.168.1.x, 新的I ...
- XJar: Spring-Boot JAR 包加/解密工具,避免源码泄露以及反编译
XJar: Spring-Boot JAR 包加/解密工具,避免源码泄露以及反编译 <?xml version="1.0" encoding="UTF-8" ...