关于validate验证用户名是否存在的简易理解

来源:互联网 发布:淘宝的膳魔师是真的吗 编辑:程序博客网 时间:2024/06/09 18:44
终于了解了些关于validate的验证应户的流程,写了下来,可能帮助不大,但是希望对跟我一样的新人有些帮助
关于validate验证的使用:
首先先建立一个customerDao的类,写好sql语句,例如:
public boolean existUsername(String username) throws Exception {
Session session = null;
session = HibernateSessionFactory.getSession();
String hql = "select count(*) from Customer where username=?";
Query query = session.createQuery(hql);
query.setString(0, username);
List<Object> list = query.list();
if (list == null || list.size() == 0) {
return false;
} else {
Long count = (Long) list.get(0);
if (count == 0) {
return false;
} else {
return true;
}
}
查询所有的username,然后在再写actionform类,在此类里写好validate的方法,例如:
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors=new ActionErrors();
StringUtil util=new StringUtil();
if(util.isNull(username)){
errors.add("error.username", new ActionMessage("username.null"));
}
else if(!util.isLength(username, 3, 15)){
errors.add("error.username", new ActionMessage("username.length"));
}
else if(!util.isNumOrEngOrCh(username)){
errors.add("error.username", new ActionMessage("username.content"));
}
return errors;
}
再写一个StringUtil的累,将判断条件写好,例如public boolean isNull(String data){
if(data==null||data.length()==0){
return true;
}
return false;
}
然后是写BwrBean类:
public class UsernameDwrBean {
public String isUsernameExist(String username){
CustomerDAO customerDAO=new CustomerDAO();
try {
boolean bool=customerDAO.existUsername(username);
return Boolean.toString(bool);
} catch (Exception e) {
e.printStackTrace();
return "true";
}
}
为了调用以上获取的username;
再写一个jsp或者一个jsp和一个js页面定义好function方法:
function checkUsername(){
    var username = document.getElementsByName("username")[0].value;
    var rs_username = document.getElementById("rs_username");
    if (!isNull(username)) {
        if (isLength(username, 3, 15)) {
            if (isNumOrEngOrCh(username)) {
UsernameDwrBean.isUsernameExist(username,function(data){
if(data=="true"){
rs_username.innerHTML = getError("用户名已经存在");
}
else if(data=="false"){
rs_username.innerHTML = getRight();
}
});
            }
else{
rs_username.innerHTML = getError("用户名格式不正确");
}
        }
else{
rs_username.innerHTML =getError("用户名长度在3-15位之间");
}

    }
    else {
        rs_username.innerHTML =getError("用户名不能为空");
    }
<html:text property="username" styleClass="input" size="25" maxlength="15" onblur="checkUsername()"></html:text>//onblur是当消失基点时触发,也就是你的鼠标离开text时;
最后呢在你的struts-config.xml中配置好提交的form表单在action中定义validate=“true”;input=“需要跳转的页面”>
OK了;
基本流程和调用呢:
运行jsp,输入完username时进入function方法同时找到触发的checkname()方法,调用bean里的方法进入Dao中将数据库中的username提出,再进入StringUtil里判断时候相等,返回true or false再传回给function方法,此时如果为false的话,可以alert()错误提示,true的话跑到struts-config.xml的配置文件中达到跳转的目的
如有补充和批评请留言,留言必回,谢谢


原创粉丝点击