我們已經在GlassFish 3.1.1下運行的JSF 2.0應用程序,它已經從JSF 1.前移這意味着我有一個faces-config.xml中說如何告訴Glassfish中的JSF 2.0實例化一個CDI @Alternative的<managed bean>?
<managed-bean>
<managed-bean-name>OnlineBeanHandler</managed-bean-name>
<managed-bean-class>X.jsf.OnlineBeanHandler</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
...
</managed-bean>
該做的目的是允許使用#{OnlineBeanHandler}
我的facelet頁面。效果很好。我也可以使用@ javax.inject.Inject 在的OnlineBeanHandler中獲得一個CDI託管bean,然後我可以通過@ javax.enterprise.inject.Alternative提供一個替代方案,並在beans.xml中啓用它。效果很好。
現在我需要爲OnlineBeanHandler本身工作相同的機制 - 即有<managed-bean>
- 處理代碼調用我的替代類而不是明確命名的,但是當遵循相同的步驟時,我仍然得到我的基類,而不是我的選擇。
這可以直接完成,如果是的話如何?
顯然這個機制在那裏不起作用。在目前的情況下,我們可以通過創建另一個faces-config.xml文件來完成這些工作,並且只能通過項目覆蓋這些文件。然後由每個項目提供替換faces-config.xml。