22 | <component id="aPersonSelect" type="PropertySelection"> |
23 | <binding name="model" value="ognl:personSelectModel"/> |
24 | <binding name="value" value="ognl:components.table.tableRow.aPerson"/> |
25 | </component> |
ognl:OgnlException:source is null for getProperty(null, "aPerson")
錯誤描述:這是一個component中一個表A,還有一個表B,最初是表A顯示,表B隱藏,顯示沒有問題,然后點擊component中一個按鈕,隱藏表A,顯示表B,就出現這樣的錯誤。
判斷1:以為表A的數據源沒有在Session保存,導致點擊按鈕重新裝載頁面時數據源為空,所以出現此錯誤,就將數據源改為session狀態,還是有此錯誤
判斷2:表A和表B是共用同一數據源,只是Column值有變化,修改為只用一個表,點擊按鈕時setColumn賦不同值,測試發現點擊后表格內容沒有變化,賦Column值失敗
判斷3:還是表A和表B,此次表A和表B使用不同數據源變量,點擊按鈕時表A數據表中內容選取部分賦給表B數據源,點擊按鈕,依然出現上述錯誤。
錯誤未解決:
待續。。。
-------------------------------------------
判斷4:<td jwcid="aPersonColumnValue@Block"><span jwcid="aPersonSelect" /></td>
在.html文件中屏蔽此句,沒有錯誤。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
終于找到錯誤原因了:
原來表A和表B的列名相同,都用了aPerson,所以當顯示表B時,為表A所用的<td jwcid="aPersonColumnValue@Block"><span jwcid="aPersonSelect" /></td>也為表B所用了,而表B的aPerson用的是:aPerson:aPerson.name,所以每次獲取aPerson值都為空,修改表B的column為aPerson1:aPerson.name即成功!!
找了這么久,原來是這個錯誤,汗!!!!