重定向/转发我的JSP页面

时间:2015-07-13 11:10:13

标签: java jquery jsp checkbox

我有2个JSP页面链接在一起。其中一个是具有多个复选框的表单,单击复选框,该值将发送到Proto1.jsp,其中值未转换为介绍字符串,并启动SQL命令。但是,如果没有选中复选框并且提交了表单,Proto1 jsp页面会给我一个空指针异常。无论如何,如果没有选中任何复选框,我可以将用户重定向回复选框页面吗?

这是我拥有的proto_1.jsp的代码,我在这里尝试了一堆答案,但我仍然继续获取空指针异常。

 portfolio = request.getParameterValues("portfolio");

  String[] portfolio = null;
  if(null == request.getParameter("submit")) {
  portfolio = (String[])session.getAttribute("portfolio");
  } else {
  portfolio = request.getParameterValues("portfolio");
  session.setAttribute("portfolio", portfolio);
  } 

 try{
  OracleDataSource ds= new OracleDataSource();
  //javax.sql.DataSource ds = new javax.sql.DataSource();
  ds.setDriverType("thin");
  ds.setServerName("localhost");
  ds.setPortNumber(1521);
  ds.setDatabaseName("orcl");
  ds.setUser("system");
  ds.setPassword("amex1234");
  Connection connection = ds.getConnection();
 //System.out.println("Connected Successfully");


        Statement statement1 = connection.createStatement() ;
        Statement statement2 = connection.createStatement() ;
        Statement statement3 = connection.createStatement() ;

        if (portfolio!=null)
        { 
            for(int i=0;i<portfolio.length;i++) 
            {   
                pretestList.add(new ArrayList());
                stgtestList.add(new ArrayList());
                mirrorList.add(new ArrayList());
            }
            //  System.out.println(pretestList);
                //System.out.println(stgtestList);
                //System.out.println(mirrorList);

            for(int j=0; j<portfolio.length;j++)    
            { String pretemp="";
              String stgtemp="";
              String mirrortemp=""; 

                ResultSet resultsetpre = statement1.executeQuery("select ID FROM "+portfolio[j]+"_Pre") ; //Put in SQl command and Table name here 
                ResultSet resultsetstg = statement2.executeQuery("select ID FROM "+portfolio[j]+"_Stg") ; 
                ResultSet resultsetmirror = statement3.executeQuery("select ID FROM "+portfolio[j]+"_Mirror") ; 

                //System.out.println("pretemp "+resultsetpre.getString(1));
                //System.out.println("stgtemp"+resultsetstg.getString(1));
                //System.out.println("mirrortemp"+resultsetmirror.getString(1));

                while(resultsetpre.next())
                {
                    pretemp = resultsetpre.getString(1);
                    pretestList.get(j).add(pretemp);
            }
                while(resultsetstg.next())
                {
                    stgtemp = resultsetstg.getString(1);
                    stgtestList.get(j).add(stgtemp);
                }
                while(resultsetmirror.next()){
                    mirrortemp= resultsetmirror.getString(1);
                    mirrorList.get(j).add(mirrortemp);
                }

                //System.out.println("pretest list"+pretestList);
                //System.out.println("stgtestlist"+stgtestList);
                //System.out.println("mirrorlist"+mirrorList);
            }

         } 

   } catch(SQLException e) {
     e.printStackTrace();
    }
     %> 

4 个答案:

答案 0 :(得分:3)

if(request.getParameter("checkbox1Name") == null) //use sendRedirect method
   response.sendRedirect("Proto1.jsp")
else
   continue with your action or redirect to proto2.jsp

答案 1 :(得分:1)

在转换为String之前,必须检查第一页复选框值,如果它为null,则可以从JSP2转发到JSP1。

答案 2 :(得分:1)

NullCheck是这样的吗

 <div ng-app="childAid" ng-controller="headerController"> 
  <div class="container">
  <h2>Displaying Header</h2>
    <header-picker></header-picker>
  </div>

如果未选中复选框,则会将该参数设为null。 根据您的申请,检查长度是可选的

一旦您决定要重定向回上一页,然后以这种方式重定向

String myValue = request.getParameter("myParam");
    if(myValue != null && myValue.trim().length() > 0){
//Process Here
}

答案 3 :(得分:1)

处理此问题的最佳方法是检查是否缺少选定值,如果未满足所选值的要求,则拒绝表单提交。