Java 与tomcat中的多个应用程序一起运行时,Struts2应用程序中的NullpointerException

Java 与tomcat中的多个应用程序一起运行时,Struts2应用程序中的NullpointerException,java,jsp,tomcat,struts2,Java,Jsp,Tomcat,Struts2,在我的Struts2应用程序中,使用对象抛出NullPointerException访问jsp值 我在jsp中有以下代码 <s:textfield name="controlObj.newname" onclick="removeError();"/> 但当我在ActionJava文件中访问这个newname属性时,它抛出NullpointerException,但在ControlForm类中,我已经初始化了newname public ControlForm () {

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

我在jsp中有以下代码

<s:textfield name="controlObj.newname"  onclick="removeError();"/>
但当我在ActionJava文件中访问这个
newname
属性时,它抛出NullpointerException,但在ControlForm类中,我已经初始化了newname

public ControlForm () {
       newname ="Update name here...";
    }
我使用的syantax编码有什么问题吗???因为如果属性直接在Action类中定义,我就可以得到这些值

private String variable_name;
我只为类型为
Object.property
的变量获取nullPointerException

更新:

  • 在Firebug工具中,我可以看到
    controlObj.newname
    passed的值 提交表格
  • 当我运行这个时,我没有得到任何错误 作为tomcat中的独立应用程序,“controlObj.newname”返回 价值仅当任何其他struts2应用程序运行时,if才会抛出null 在Tomcat中使用此应用程序

  • 您得到的NullPointerException不是因为没有初始化新名称,而是因为没有初始化controlObj。当Struts使用getControlObj()获取controlObj时,返回null,因为controlObj尚未初始化,然后此null对象上的getNewname()抛出NullPointerException。如果您在操作中正确初始化了controlObj,则应该解决此问题。

    您得到的NullPointerException不是因为没有初始化新名称,而是因为没有初始化controlObj。当Struts使用getControlObj()获取controlObj时,返回null,因为controlObj尚未初始化,然后此null对象上的getNewname()抛出NullPointerException。如果您在操作中正确初始化了controlObj,则应该解决此问题。

    添加ControlForm的结构。如果您实际实例化了
    HandoutForm
    (我假设这扩展或实现了
    ControlForm
    )并在
    controlObj
    字段中引用它?您在哪里部署S2库?应用程序库文件夹中的struts2-core-2.0.11添加ControlForm的结构您实际实例化了
    HandoutForm
    的实例(我假设这扩展或实现了
    ControlForm
    )并在
    controlObj
    字段中引用它?您在哪里部署S2库?struts2-core-2.0.11在应用程序库文件夹中我忘了包括,controlObj也在操作文件中初始化。在jsp文件“controlObj.newname”中显示我在Constructor中输入的值或忘了包括,controlObj也在action文件中初始化。在jsp文件“controlObj.newname”中显示我在构造函数中输入的值
    private String variable_name;