Spring 整合 JSF 最簡單方式:使用 DelegatingVariableResolver 類別。在 faces-config.xml 中配置:
<application>
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
<locale-config>
<default-locale>zh_CN</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>zh_CN</supported-locale>
</locale-config>
<message-bundle>messages</message-bundle>
</application>
直接透過 managed-bean 的 property 屬性取得 Spring 注入的 bean:
<managed-bean>
<managed-bean-name>goodsController</managed-bean-name>
<managed-bean-class>web.jsf.GoodsController</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<!-- inject service -->
<managed-property>
<property-name>goodsService</property-name>
<value>#{goodsService}</value> <!-- 注入 Spring service -->
</managed-property>
</managed-bean>
此方式無需額外程式碼,僅靠配置即可完成 Spring 與 JSF 整合,簡潔高效。