Struts - 从s:submit获取NullPointerException

时间:2011-03-02 22:51:46

标签: struts2

还有一个与我的Struts表单有关的问题,我将继续讨论其他事情。我终于想出了如何用两个按钮实现一个表单。我将用户点击的s:submit按钮的name属性发送到我的action类的execute()方法。我有一个与每个按钮关联的String变量,并且所选按钮的变量(很明显)是设置的变量,我想为每个按钮执行不同的方法。当我点击第一个按钮时,没问题。单击第二个按钮时会出现问题。我得到一个与第一个String相关的NullPointerException。我可以发誓有问题的String开始是null,这就是我正在检查的内容,所以我看不出为什么会出现问题。我包括getter和setter以及execute()方法。那里有什么想法吗?

public String getApprove() {
    return approve;
}

public void setApprove(String approve) {
    this.approve = approve;
}

public String getDeny() {
    return deny;
}

public void setDeny(String deny) {
    this.deny = deny;
}

public String execute() {
    BulletinDAO bulletinDAOInstance = new BulletinDAO();

    <!-- Error occurs here when approve is null -->
    if (! approve.equals(null)) {
        if (bulletinDAOInstance.approveBulletin(id) == true) {
            return "success";
        }           
    }

    if (! deny.equals(null)) {
        if (bulletinDAOInstance.denyBulletin(id) == true) {
            return "success";
        }                       
    }

    return "failure";
}

1 个答案:

答案 0 :(得分:1)

approve.equals(null)将永远不会为true,如果approve为null将导致空指针异常,因为您试图在空对象上调用函数。

使用if(approve == null)比较内存中的位置而不是对象的内容