我有一個JSF頁面下面一行:JSF EL不解決
<h:commandLink action="#{myBean.test}" value="Wizard Step"></h:commandLink>
我希望在加載頁面時,相應於爲myBean bean將被實例化(和我能看到這在eclipse調試器中)。
其餘的JSF工作正常,但這個bean沒有解析(沒有任何錯誤)。
我該如何從el失敗解決bean的錯誤?
我有一個JSF頁面下面一行:JSF EL不解決
<h:commandLink action="#{myBean.test}" value="Wizard Step"></h:commandLink>
我希望在加載頁面時,相應於爲myBean bean將被實例化(和我能看到這在eclipse調試器中)。
其餘的JSF工作正常,但這個bean沒有解析(沒有任何錯誤)。
我該如何從el失敗解決bean的錯誤?
如果有EL錯誤,你一定會得到的javax.el
package異常:
ELException
:代表任何的可以表達的評估過程中出現的異常情況。MethodNotFoundException
:在評估MethodExpression
時找不到方法。PropertyNotFoundException
:在評估ValueExpression
或MethodExpression
時無法找到房產時投擲。PropertyNotWritableException
:在設置ValueExpression
上的值時無法寫入屬性時拋出。就你而言,託管bean不是在初始請求時構造的。這隻能意味着託管bean在視圖的其他地方沒有被引用。在action
屬性中的EL僅在表單提交時才被評估。所以這個bean只會在調用動作時被構造。作爲測試,只需在視圖中的某處放置#{myBean}
即可。你會看到它在初始請求時被構建。
你真正的問題是,命令按鈕動作根本不調用,所以EL在其action屬性是根本無法評估的。這個問題不能在EL方面調試也不能確定。有很多可能的原因導致按鈕操作未被調用。你可以在這裏找到它們:commandButton/commandLink/ajax action/listener method not invoked or input value not updated。啓動器中最常見的原因是該按鈕位於重複組件中,如<h:dataTable>
,其值未正確保存,並在表單提交請求期間返回完全不同的值,或者該組件或其組件之一具有rendered
屬性,該屬性爲未妥善保存,默認爲false
。
向我們展示MyBean類的代碼 – Xorty 2012-01-14 09:02:36
我的觀點是 - 無需查看課程 - 是否有辦法讓Mojarra吐出嘗試解決el問題時遇到的錯誤。 – hawkeye 2012-01-14 09:29:24
我現在明白了。一切都還好,但是當你點擊鏈接之後,你會得到類似於PropertyNotFoundException的東西,因爲這個bean不存在。你正試圖阻止有未解決的豆。 – Xorty 2012-01-14 10:03:58