我想在JSP页面 接收上个页面的数据 进行判断 如果条件为假 就跳转到错误页面 比如: 
<% 
String s = request.getParameter("date"); 
if("".equals(s) || s == null){ 
response.sendRedirect("error.jsp"); 

%> 
<body> 
...... 
</body> 如果条件为真 就继续执行下面的代码 现在的问题是 : 假如我要对String s 做处理 比如 int i = Integer.parseInt(s); 如果s为空 他不会执行 response.sendRedirect("error.jsp"); 而是报空指针异常 所以跳转页面根本不起作用 。 请问这个问题怎么能解决 ? 我是用的纯JSP做的 没有struts

解决方案 »

  1.   

    catch到异常就response.sendRedirect("error.jsp"); 
      

  2.   

    这里出了问题:if("".equals(s) || s == null){ 如果s是null值得话,"".equals(s)这句出现nullpointExceptison,应该改正如下:if( s == null && "".equals(s))原因是:它是先执行:s==null这里,如果是null,后面的"".equals(s)根本都不执行了,所以不会报nullpointexception
      

  3.   

    if("".equals(s) || s == null)  不是这里的问题啊
    我改成if("".equals(s))  结果都一样的
    在JSP里好像不能加try catch吧 ?
      

  4.   

    哎呀,怎么说你都不明白的呢: 都说 if("".equals(s))这里有问题的, s是null的话,"".equals()这个方法一执行就报nullpointException啦的, 如果if( s == null && "".equals(s)) 你无法接受的话,你就改成下面的: if(s == null)
     { 
      response.sendRedirect("error.jsp");
     }
     else if ("".equals(s))
     {
      response.sendRedirect("error.jsp");
     }
    其实if( s == null && "".equals(s)) 跟上面我说的等价的,你的就是在if里面调换了位置,明白了吧
      

  5.   

    拜托楼主按照我的做法把它改成if( s == null && "".equals(s)) 
    来试下,不行你就骂我得啦
      

  6.   

    int i =0;
    try{
      i = Integer.parseInt(s); 
    }catch(Exception ex){
      i = 0; // 这里是字符串不能转化为数字的默认设置
    }
      

  7.   

    if("".equals(s) || s == null){ 的写法没问题,当然先后顺序换一下更好。不换也没有大问题。
      

  8.   

    非常抱歉,我的错,哈哈if("".equals(s) || s == null)是没问题,但是,我看错了,把它看成 if (s.equals("") || s == null)假如是我看错的情况,就是要像刚才我做的那样了,不好意思,
      

  9.   

    敢问 ?
    JSP里可以加try catch吗 ?
    我怎么加了就报错啊 ?
      

  10.   

    当然可以了..........jsp其实就是servlet,都是放到服务器端执行的,这个是基本的定义的,servlet里可以定义try catch块,jsp上为什么不行呢?
      

  11.   

    你直接判断if(s==null)跳转到error.jsp页面不行吗?明知道为空还要去强制转换成整型数据,不报错就怪了~
      

  12.   

    得到的值不为空的话  我就不用跳转到error页面了啊