2012-01-14 67 views
1

我有一個JSF頁面下面一行:JSF EL不解決

<h:commandLink action="#{myBean.test}" value="Wizard Step"></h:commandLink> 

我希望在加載頁面時,相應於爲myBean bean將被實例化(和我能看到這在eclipse調試器中)。

其餘的JSF工作正常,但這個bean沒有解析(沒有任何錯誤)。

我該如何從el失敗解決bean的錯誤?

+0

向我們展示MyBean類的代碼 – Xorty 2012-01-14 09:02:36

+0

我的觀點是 - 無需查看課程 - 是否有辦法讓Mojarra吐出嘗試解決el問題時遇到的錯誤。 – hawkeye 2012-01-14 09:29:24

+0

我現在明白了。一切都還好,但是當你點擊鏈接之後,你會得到類似於PropertyNotFoundException的東西,因爲這個bean不存在。你正試圖阻止有未解決的豆。 – Xorty 2012-01-14 10:03:58

回答

1

如果有EL錯誤,你一定會得到的javax.el package異常:

就你而言,託管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