//以下为前端的相关代码(Extjs js文件中)
this.bIsExist = false;//本类所需成员变量
xtype : 'textfield',
fieldLabel : '用户名',
name : 'AddForm_sName',
vtype : 'alphanum',
vtypeText : '只能输入字母和数字',
labelStyle : 'text-align:right;',
validator : this.checkUserName,//validator为自定义校验函数属性
invalidText : '此用户已存在!',
allowBlank : false
/**
* 功能:验证用户是否相同
*/
checkUserName : function() {
//定义变量值
var username = this.ownerCt.find('name','AddForm_sName')[0].getValue();//获取textfield的name属性值
/*-------------- 发送请求----------------*/
Ext.Ajax
.request({
url : 'user_sameName.do',
params : {
name : username
},
method : 'POST',
scope : this.ownerCt,
success : function(response, options) {
var responseArray = Ext.util.JSON
.decode(response.responseText);
if (responseArray.success == true) // 用户名已经被使用
this.bIsExist = true;// 给变量赋值
else
// 用户名可以使用
this.bIsExist = false;// 给变量赋值
}
});
/*-------------/ 发送请求----------------*/
return this.ownerCt.bIsExist;
}
//以下为后端的相关代码
验证用户是否存在的Action类
/**验证用户是否存在
* */
public String sameName(){
super.setContentType(super.JSON);
//验证用户是否存在
try {
if(userService.getSameName(name))
super.outPrint("{success:true}");
else
super.outPrint("{success:false}");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "json";
}
验证用户是否存在的Service层
/**验证验证用户是否存在
* @throws SQLException
* */
public boolean getSameName(String name) throws SQLException{
return userDao.getSameName(name);
}
验证用户是否存在的Dao层
/**验证验证用户是否存在
* @throws SQLException
* */
public boolean getSameName(String name) throws SQLException{
int index = 0;
index = (Integer) sqlMapClient.queryForObject("User.getSameName", name);
if(index > 0){
return false;
}
return true;
}
验证用户是否存在的Sql语句(ibatis)
<!--验证用户名是否存在-->
<select id="getSameName" parameterClass="string" resultClass="int">
<![CDATA[
select count(*) from sd_user where name=#name#
]]>
</select>