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

本文介绍了如何使用validate验证用户输入的用户名是否在数据库中已存在,详细讲解了从建立CustomerDAO到ActionForm,再到StringUtil类的实现过程,以及在JSP和JS中的应用,最终实现对用户名的有效性检查和错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

终于了解了些关于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" οnblur="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的配置文件中达到跳转的目的
如有补充和批评请留言,留言必回,谢谢


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值