關於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。
最後一直排查問題就是這個變數名的問題..