日期:2014-05-17  浏览次数:20688 次

很多简单问题吖。。。。。急求解决。高分求解
NO.1 

jsp网页上有一个文本框(输入数字)、进行跳转页面的。
但是问题是不输入点击跳转就出错了。然后我加了 js 验证这个文本框是否为空、但是没用、
文本域:
Java code
 <input name="jump" onkeyup="value=value.replace(/[^(\d)]/g,'')" class="" id="jump" type="text" size="4" /> 

onkeyup 这个用来不让用户输入汉字等的字符、 
js验证:
JScript code
<script language="JavaScript">
function formcheck(form1)  //form1是表单
{var flag = true;
    if (form1.jump.value =="")
    {    alert("请输入需要跳转的页码!");
        form1.jump.focus();
        flag = false;
    }
    return flag;
}
</script>



NO2:

我的登录页面输错用户名和密码 就会弹出提示框、但是提示框里的提示是乱码。 验证是写在 servlet里的、

servlet里有这么两句:
Java code
request.setCharacterEncoding("gb2312") ;

        response.setContentType("text/html;charset=GB2312"); 


登录页面的编码是 gb2312  
数据库也是 gb2312  




NO3:
我的搜索框里一旦输入数据库里查询不到的信息。就会出错。
 我想用 n进行判断是否有数据。但是不行。。
贴出部分代码:

Java code
int n = 0 ;
while(iter.hasNext()&&n<Pagesize)
            {
            
                    DB_book m = (DB_book)iter.next() ;
                    n++ ;
                  String id=m.getId();
                  String name=m.getName();
                     
  %> 



..................省略。



                  <% 
  }
      
            
            if(n==0)
            {
                 out.print("<script type='text/javascript'>alert('未查询到相关信息!');document.location.href='XXX.jsp';</script>");    
            }
    %>
        


------解决方案--------------------
NO 1 经过测试,是可以进行非空判断的

<form onsubmit="return formcheck(this)"> 你是不是调用的时候写错了


NO 2 这个暂时帮不了


NO 3 你这个是集合么,可以判断集合是否为空,集合的长度是否大于0

------解决方案--------------------
No3,你可以先 select count(*) from tb1; 得到记录总条数count;
然后你有一个固定的页面条数Pagesize,还有一个要跳到第几页的PageNo对吧,
那么你设 BeginRow=(PageNo-1)*Pagesize+1,EndRow=PageNo*Pagesize,应该输出的记录的首末行
把BeginRow,EndRow与count比较,如果BeginRow<count<EndRow,那么EndRow=count,接着数据库查找
如果count<BeginRow,直接输出没记录,结束
数据库查找语句:select * from tb1 where rownum between BeginRow and EndRow;
取出要输出到页面上的Pagesize条记录,
------解决方案--------------------
No3,你可以先 select count(*) from tb1; 得到记录总条数count;
然后你有一个固定的页面条数Pagesize,还有一个要跳到第几页的PageNo对吧,
那么你设 BeginRow=(PageNo-1)*Pagesize+1,EndRow=PageNo*Pagesize,应该输出的记录的首末行
把BeginRow,EndRow与count比较,
*如果EndRow<count,那么接着数据库查找
*如果BeginRow<count<EndRow,那么EndRow=count,接着数据库查找
*如果count<BeginRow,那么直接输出没记录,结束
数据库查找语句:select * from tb1 where rownum between BeginRow and EndRow;
取出要输出到页面上的Pagesize条记录,
------解决方案--------------------
NO1:你写得那个JS函数有被调用吗?还是被调用的代码没有贴出来,没代码我也不好说,所有不解释,应该调用部分错了,你检查检查调用部分


NO2:用个一个Filter即可解决,代码如下:
Java code

public class Encoding implements Filter{

    public void destroy() {
        
    }

    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain cha) throws