2012-06-25 89 views
0

在我的Struts2應用程序中,使用拋出NullPointerException異常的對象訪問jsp值。在Tomcat中運行多個應用程序時,Struts2應用程序中的NullpointerException

我在JSP

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

follwing代碼,我有這個controlObj豆在Struts2的Action類

private ControlForm controlObj; 

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

,但是當我在行動中的Java文件訪問此newname屬性,它拋出NullPointerException異常,但在ControlForm中,我已經創建了新名稱

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

編碼syantax我有什麼問題嗎?因爲我可以得到的值,如果性質在Action類直接定義如下

private String variable_name; 

我得到的NullPointerException僅Object.property類型的變量!

更新:

  1. 在Firebug的工具,我可以看到controlObj.newname的值傳遞 與形式提交。
  2. 我沒有得到任何錯誤,當我運行這個應用程序作爲獨立的tomcat,「controlObj.newname」 值,如果只有在Tomcat的
+0

添加ControlForm的結構 –

+0

您是否實際實例化了'HandoutForm'的實例(我假設這擴展或實現了'ControlForm')並在'controlObj'字段中引用它? –

+0

你在哪裏部署S2庫? –

回答

3

你所得到的NullPointerException異常與此應用程序運行 任何其它的應用Struts2的是不是由於沒有被初始化的NEWNAME,但由於controlObj未初始化拋出空。當Struts使用getControlObj()獲取controlObj時,返回null,因爲controlObj尚未初始化,此null對象上的getNewname()將引發NullPointerException。如果您在操作中正確初始化了ControlObj,則應該解決此問題。

+0

我忘記包含,controlObj也在動作文件中初始化並在jsp文件'controlObj.newname'中顯示值我在構造函數 – gnanz

+0

中更新了新問題 – gnanz

相關問題