还有一个与我的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";
}
答案 0 :(得分:1)
approve.equals(null)将永远不会为true,如果approve为null将导致空指针异常,因为您试图在空对象上调用函数。
使用if(approve == null)比较内存中的位置而不是对象的内容