大家好。我请教个问题。。
<a href="gouwu.jsp?ProductList=ProductList">清空购物车</a>
这是购物gouwu.jsp的里面清空的连接    我想在本页接传过去的参数ProductList=ProductList
然后做个判断。。请问这个判断怎么判断两个字符相等。。
String st = request.getParameter("ProductList");
if (st.equals("ProductList"))
{
cart.clear();
out.print("<script>alert('清除成功!');window.location.href='index.jsp';</script>");
}
上面这样。抛空指针。是不是如果st为NULL就不能用equals?那怎么办?用==可以吗?
各位详细给我讲一下==和equals。。新手特迷茫
还有。上面的问题。有没有更好的解决办法。。比如。。
可不可以点完清空直接在本页调我JAVABEAN的方法?我总觉得上面的方法好像很别扭。谢谢大家。。

解决方案 »

  1.   

    st为null是不可以调用equals方法
    ==是比较两个引用指向的是否是同一个对象
    equals用来比较两个对象打值是否一样,可能需要自己覆盖这个方法
    if (st.equals("ProductList")) 
    --->
    if ("ProductList".equals(st)) 
    或者
    if (st != null && st.equals("ProductList")) 可不可以点完清空直接在本页调我JAVABEAN的方法?
    可以的吧,只不过是点完以后回到那里的问题,不过当前页面可能需要做一些分支判断
      

  2.   

    if ("ProductList".equals(st)) 
    cart.clear(); 
    out.print(" <script> alert('清除成功!');window.location.href='index.jsp'; </script> "); 

      

  3.   

    Thrown when an application attempts to use null in a case where an object is required.
    应用程序用到null就会抛此异常 一共5种情况 如1楼想办法避免