java新手:最近在实现ssh实现注册时验证用户名是否已经存在
在register.jsp里
<input type="text" class="form-control" name="username" id="username" placeholder="用户名" required="required" onblur="checkName()"/>
<span id="name_tishi"></span>
required="required"表示输入框不可以为空,
onblur事件会在对象失去焦点时发生。
js:
function checkName(){
$("#error").css("display","none");
var username = $.trim($("#username").val());
// console.log("username=="+username);
$.ajax({
type:'POST',
url:"Login_findUserByName.action",
data:"username="+username,
dataType:"text",
success: function(data) {
//console.log("data=="+data);
if(data == "true"){
$("#name_tishi").html("");
// $("#e_tishi").css("color","green");
$("#submit_btn").removeAttr("disabled");//注册的id
return true;
}else{
// console.log("data注册过"+data);
$("#name_tishi").html("用户名已经存在");
$("#name_tishi").css("color","red");
$("#submit_btn").attr("disabled","disabled");
document.getElementById("username").value=""; //让用户名输入框为空
$("#username").focus();//把焦点给用户名输入框
return false;
}
}
});
}
在action中的函数:
public void findUserByName(){
boolean firstName = adminBizImpl.findUserByName(username);
//取得response 实例
HttpServletResponse response = ServletActionContext.getResponse();
//可以注册
if(firstName==false){
try {
//response.getWriter()得到PrintWriter实例,write 输出firstName的值
response.getWriter().write(firstName+"");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("firstName=="+false);
}else {//不能注册
try {
response.getWriter().write(firstName+"");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("firstName=="+true);
}
}
在biz中:
public boolean findUserByName(String username) {
return adminDao.findUserByName(username);
}
在dao中:
public boolean findUserByName(String username) {
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
List<Admin> list =null;
try{
String sql = "select * from admin where name='"+username+"';";
list = session.createSQLQuery(sql).list();
System.out.println("findUserByName =="+list);
tx.commit();
if(list!=null && list.size()>0){
return false;
}
}catch(Exception e){
tx.rollback();
e.printStackTrace();
}
return true;
}
在struts.xml中:
<action name="Login_*" class="userAction" method="{1}">
<!-- 没有返回值-->
</action>
在用户注册时写的,可以根据验证用户名的代码,可以实现验证电话和邮箱的。