1. 程式人生 > >關於target is null for setProperty的問題總結

關於target is null for setProperty的問題總結

關於這種問題的幾種可能性總結下:

1. 對應的屬性沒有加get set  方法

2. 提交表單中有更多的name屬性而對應的action 或者model裡面沒有這個方法(這裡重要就包括一個圖片button  往往讓人們難以發現)如下面表示:

<input type="image" name="Submit" value="提交" onclick="return checkpwd();" src="images/a_tj.gif"/>

錯誤資訊: target is null for setProperty(null, "x", [Ljava.lang.String;@b0c40e)

3. 在沒有spring幫助注入的前況下我們action裡面的model 一定要手動new 出來並且在model裡面新增空的構造方法

4. Action裡面的model 例項物件名字和我們表單中的名字不一致的時候

5、struts2中表單提交按鈕:

<input type="Submit" name="Submit" value=" 查 詢 " />

這樣會報題目的錯誤.其實把submit的name屬性刪掉或者

<input type="button" name="Submit" value=" 查 詢 " onclick="document.form.submit();"/>

都是可以解決的,估計凡是在struts2中沒有定義getter,setter方法的form中的input都要被丟擲異常

6、原來的model類中重寫了構造方法,卻沒有提供預設的空建構函式。

加上public Book(){};即可。

7、最後還有一個坑爹的問題:你的屬性命名規範。

例如:有一個表t_txn_info表對應的pojo類是TTxnInfo

你在action類中有一個屬性private TTxnInfo tTxnInfo;

這樣導致自動生成的setter/getter方法不能識別tTxnInfo,會識別成txnInfo.

曾經吃過虧。最好把tUser的第一第二個字母都小寫——tuser,或者去掉t。

最後一直排查問題就是這個變數名的問題..