<%  String datetime = request.getParameter("datetime");
String bt = request.getParameter("bt");
ResultSet rs = null;
Bean1.setsDataSource(bt+"Data");
    Bean1.setsUserName("sa");
    Bean1.setsPassword("sa");
String txtsql="";
String txtsql1="";
if(bt=="gfuba"){
txtsql1=" SELECT top 1 dati ,k1, BD1 - BG1, BD2 - BG2, BD3 - BG3, BD4 - BG4  FROM U_Gtjc order by dati desc";
out.print("1111");
}else(bt=="gzhuba"){
txtsql1=" SELECT top 1 dati ,k1, AD0 - AG0, AD1 - AG1 , AD2 - AG2 , AD3 - AG3 , AD4 - AG4 , AD5 - AG5 , AD6 - AG6  FROM U_Gtjc order by dati desc";
out.print("22222");
}为什么都不进if语句就直接执行else里面的呢? 

解决方案 »

  1.   

    <%  String datetime = request.getParameter("datetime"); 
    String bt =""; 
    bt =(String)request.getParameter("bt"); 
    if(bt == null){
      bt = "";
    }

    ResultSet rs = null; 
    Bean1.setsDataSource(bt+"Data"); 
        Bean1.setsUserName("sa"); 
        Bean1.setsPassword("sa"); 
    String txtsql=""; 
    String txtsql1=""; 
    if(bt=="gfuba"){ 
    txtsql1=" SELECT top 1 dati ,k1, BD1 - BG1, BD2 - BG2, BD3 - BG3, BD4 - BG4  FROM U_Gtjc order by dati desc"; 
    out.print("1111"); 
    }else(bt=="gzhuba"){ 
    txtsql1=" SELECT top 1 dati ,k1, AD0 - AG0, AD1 - AG1 , AD2 - AG2 , AD3 - AG3 , AD4 - AG4 , AD5 - AG5 , AD6 - AG6  FROM U_Gtjc order by dati desc"; 
    out.print("22222"); 
    } 你先试试这样能进IF不?
      

  2.   

    还有!不要用==等号!
    要用equals
    因为是string型!
      

  3.   

    if(bt=="gfuba")
    写的有问题啊,改用 if(bt.equals("gfuba"))
      

  4.   

    错误1: bt =(String)request.getParameter("bt"); 
    在使用bt时,最好应判断空,再trim,最后才能进行比较(equals).
    建议自己写一个扩展一个即可trim又可将null变为空串的方法
    如:
       public String trim(String str){
            if(str == null) retrun "";
            else return str.trim();}最后才能安全的进行比较:就是楼上回复的,要使用 bt.equals("").字符串的比较是对象比较,== 是进行内存地址比较,当前是不相等的.
      

  5.   

    String 比较是用equals。。最好在比较之前。trim一下。
      

  6.   

    你用==是比较两个String在内存中的位置是否相等
    这是两个String当然不相等 直接进入else了比较内容是否相等要用equals(记住要判断NULL的情况)
      

  7.   

    顶if(bt!=null && "gfuba".equals(bt)){ 
    txtsql1=" SELECT top 1 dati ,k1, BD1 - BG1, BD2 - BG2, BD3 - BG3, BD4 - BG4  FROM U_Gtjc order by dati desc"; 
    out.print("1111"); 
    }else(bt!=null && "gzhuba".equals(bt)){ 
    txtsql1=" SELECT top 1 dati ,k1, AD0 - AG0, AD1 - AG1 , AD2 - AG2 , AD3 - AG3 , AD4 - AG4 , AD5 - AG5 , AD6 - AG6  FROM U_Gtjc order by dati desc"; 
    out.print("22222"); 
      

  8.   

    <%  String datetime = request.getParameter("datetime");
    String bt = (String)request.getParameter("bt");
    if(bt==null){ bt="gzhuba";}
    ResultSet rs = null;
        
    Bean1.setsDataSource(bt+"Data");
        Bean1.setsUserName("sa");
        Bean1.setsPassword("sa");
    String txtsql="";
    String txtsql1="";
    /*if(bt!=null && "gfuba".equals(bt)){ 
    txtsql1=" SELECT top 1 dati ,k1, BD1 - BG1, BD2 - BG2, BD3 - BG3, BD4 - BG4  FROM U_Gtjc order by dati desc"; 
    out.print("1111"); 
    }else(bt!=null && "gzhuba".equals(bt)){ 
      txtsql1=" SELECT top 1 dati ,k1, AD0 - AG0, AD1 - AG1 , AD2 - AG2 , AD3 - AG3 , AD4 - AG4 , AD5 - AG5 , AD6 - AG6  FROM U_Gtjc order by dati desc"; 
    out.print("22222"); 
    }*/
    为什么我把红字的那段屏蔽了之后就没有错误了, 加上之后就提示:
    org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 23 in the jsp file: /pmxs_gt/data.jsp
    Generated servlet error:
    Syntax error, insert "AssignmentOperator ArrayInitializer" to complete ArrayInitializerAssignementAn error occurred at line: 23 in the jsp file: /pmxs_gt/data.jsp
    Generated servlet error:
    Syntax error, insert ";" to complete Statement
      

  9.   

    一个是比较对象地址,一个是比较值.两着意义不同,用equals 是记得要.toString()
      

  10.   

    if(bt!=null && bt.equals("gfuba")){ 
    txtsql1=" SELECT top 1 dati ,k1, BD1 - BG1, BD2 - BG2, BD3 - BG3, BD4 - BG4  FROM U_Gtjc order by dati desc"; 
    out.print("1111"); 
    }else(bt!=null && bt.equals("gfuba")){ 
    txtsql1=" SELECT top 1 dati ,k1, AD0 - AG0, AD1 - AG1 , AD2 - AG2 , AD3 - AG3 , AD4 - AG4 , AD5 - AG5 , AD6 - AG6  FROM U_Gtjc order by dati desc"; 
    out.print("22222"); 
    }
    试试!
      

  11.   

    <%  String datetime = request.getParameter("datetime"); 
    String bt = (String)request.getParameter("bt"); 
    if(bt==null){ bt="gzhuba";} 
    ResultSet rs = null; 
        
    Bean1.setsDataSource(bt+"Data"); 
        Bean1.setsUserName("sa"); 
        Bean1.setsPassword("sa"); 
    String txtsql=""; 
    String txtsql1=""; 
    /*if(bt!=null && "gfuba".equals(bt)){ 
    txtsql1=" SELECT top 1 dati ,k1, BD1 - BG1, BD2 - BG2, BD3 - BG3, BD4 - BG4  FROM U_Gtjc order by dati desc"; 
    out.print("1111"); 
    }else(bt!=null && "gzhuba".equals(bt)){ 
    txtsql1=" SELECT top 1 dati ,k1, AD0 - AG0, AD1 - AG1 , AD2 - AG2 , AD3 - AG3 , AD4 - AG4 , AD5 - AG5 , AD6 - AG6  FROM U_Gtjc order by dati desc"; 
    out.print("22222"); 
    }*/ 为什么我把红字的那段屏蔽了之后就没有错误了, 加上之后就提示: 
    org.apache.jasper.JasperException: Unable to compile class for JSP An error occurred at line: 23 in the jsp file: /pmxs_gt/data.jsp 
    Generated servlet error: 
    Syntax error, insert "AssignmentOperator ArrayInitializer" to complete ArrayInitializerAssignement An error occurred at line: 23 in the jsp file: /pmxs_gt/data.jsp 
    Generated servlet error: 
    Syntax error, insert ";" to complete Statement 
    大侠帮忙看看吧