日期:2014-05-18  浏览次数:20727 次

jsp分页出错+校验用户名不存在~!
这个是分页的时候:
query.jsp

<s:url var="url_pre" value="show!show.action">
     <s:param name="pageNow" value="pageNow-1"></s:param>
     </s:url>
<s:a href="%{url_pre}">上一页</s:a>

各位看见了,定义pageNow = 1;
所以当页面为“第一页”的时候,你再次点击“上一页”  value就变成了 -1,查询mysql的时候就出错,因为mysql的查询是 select *from userinfo limit (pageNow*2-2),2;  
里面limit -1,2  报错~!!(每页只显示两条记录)



校验不存在的时候:
这个是后台校验的,后台能打出:不存在该用户名

st = conn.createStatement();
String sql1 = "select * from userinfo where userName='"+ userName +"'";
rs1 = st.executeQuery(sql1);
if(!rs1.next()){
System.out.println("不存在该用户名");
return "Error";
}else{
String sql2 = "select * from userinfo where passWord='"+ passWord +"'";
rs2 = st.executeQuery(sql2);
if(!rs2.next()){
System.out.println("密码错误");
return "Error";
}


只有后台显示,登陆人并不知道啊,所以我想把这个错误提示显示在页面,就是当用户名在数据库中不存在的时候 点击“登陆”就alert “用户名不存在”~!
分页 jsp 数据库 java mysql

------解决方案--------------------
加上 onfocus 这个事件吧

用jquery 去调用你判断用户名那个方法

现在都是及时验证的
------解决方案--------------------
在后台判断 

 if(pageNow<1){
     pageNow=1
 }

判断最后一页 同上
------解决方案--------------------
楼主没有系统学习,不理解原理,遇到这样问题想不通了。多问问同事,不懂原理死磕确实解决不了。

1.分页,看你的代码应该是一个页面跳转另一个页面,我不会Strtus2标签,给说个简单的。

<script type="text/javascript">
    var page = 0;//当前页数
    function changePage(num){
        var p = page+num;
        if (p>0) {
            location.href = "show!show.action?pageNow="+p;
        } else {
            alert("没有上一页了!");
        }
    }
</script>
<a href="#" onclick="changePage(-1)"></a>


2.后台校验,你这段代中应该能取到HttpServletResponse。
java:

HttpServletResponse resp;//取HttpServletResponse的代码
st = conn.createStatement();
String sql1 = "select * from userinfo where userName='"+ userName +"'";
rs1 = st.executeQuery(sql1);
if(!rs1.next()){
System.out.println("不存在该用户名");
String msg = "不存在该用户名"