0

在我的 Struts2 应用程序中,使用抛出 NullPointerException 的对象访问 jsp 值。

我在jsp中有以下代码

<s:textfield name="controlObj.newname"  onclick="removeError();"/>

controlObj在 Struts2 Action 类中有一个 bean

private ControlForm controlObj;

public ControlForm getControlObj() {
    return controlObj;
}
public void setControlObj(ControlForm controlObj) {
    this.controlObj= controlObj;
}

但是当我newname在动作java文件中访问这个属性时,它会抛出NullpointerException,但是在ControlForm类中我已经初始化了新名称

public ControlForm () {
       newname ="Update name here...";
    }

我正在使用的编码语法有什么问题吗???因为如果属性是直接在 Action 类中定义的,我可以获得值

private String variable_name;

我只得到类型变量的 nullPointerException Object.property!!!

更新:

  1. 在 Firebug 工具中,我可以看到controlObj.newname通过表单提交传递的值。
  2. 当我在 tomcat 中独立运行此应用程序时,我没有收到任何错误,“controlObj.newname”返回值。if 仅当在 Tomcat 中与此应用程序一起运行的任何其他 struts2 应用程序时才抛出 null
4

1 回答 1

3

您得到的 NullPointerException 不是由于未初始化新名称,而是由于未初始化 controlObj。当 Struts 使用 getControlObj() 来获取 controlObj 时,将返回 null,因为 controlObj 尚未初始化,然后此 null 对象上的 getNewname() 将引发 NullPointerException。如果您在操作中正确初始化 controlObj,这应该可以解决。

于 2012-06-25T12:09:30.460 回答