<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <html> 
  <head> 
    
    <title>My JSP 'good.jsp' starting page </title> 
      </head> 
  <%String st=""; 
  st=request.getParameter("bt1"); 
  System.out.println(st); 
  System.out.println(st); 
  if(st.equals("Click")) 
  out.println("ddd"); 
  %> 
  <body> 
  <form action="good.jsp"> 
<input type="submit" value="Click" name="bt1"> 
  </form> 
  </body> 
</html> 这个代码的上有个按钮bt1,值是Click  我点了这个按钮后让他重新进到这个页面,就是刷新一次。然后用st=request.getParameter("bt1"); 获取这个按钮的内容。然后打印出这个内容是Click。但是在后面的if比较中 if(st.equals("Click")) 
                        out.println("ddd"); 
他提示if里面的比较有错误,不能用equeal比较,但是我用了==进行比较的话if(st=="Click")这个比较的结果是false的。为什么会这样啊?求高人帮忙啊,新人在此谢谢了

解决方案 »

  1.   

    在st.equals("Click") 之前得先判断 st 是否为null 
    因为你页面刚加载的时候,你并没有提供"bt1"  这个参数,也就是说st=request.getParameter("bt1"); 
    实际是 st = null
      

  2.   

    但是还有问题哦,第一次进去的时候有st是空的,但是如果我点了那个button进行重新刷新了,st不就有内容了么。但我应该点一次之后他就会进入比较输出ddd。可是点了一点反映都没哦
      

  3.   

    用equals没问题,你想把值输出到good.jsp上吗?你提交时刷新了页面,那值有空了把。
      

  4.   

    用equals没问题,你想把值输出到good.jsp上吗?你提交时刷新了页面,那值有空了把。