版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1769864
在Spring Beans中的JSF
http://blog.rainer.eschen.name/2007/08/21/jsf-on-spring-beans/以前,我寫過在混合依賴注入環境中怎樣使用backing beans。我的blog目錄描述了怎樣在JSF和Spring中寫POJOs,以及在基于JSF的表現層使用它們。但是,Web容器的配置有時是missing的。
1)Configuration(配置)
其配置是非常簡單的。我們需要一個指定的listener,叫RequestContextListener,和一個resolver,名為DelegatingVariableResolver。兩者都來自Spring的配置,當backing bean識别符被映射到一個bean時,起到調派(dispatching)作用。這個配置允許把所有指定的JSF定義移動到Spring context。
管理backing beans更好的方法時把應用程式上下文(application context)檔案分成多個檔案。要識别上下文,需要用“spring-”給檔案名加上字首。
下面是web.xml的代碼,在packages有一些beans,“security”,“commons”,“context”。

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/spring-security.xml,

/WEB-INF/spring-commons.xml,

/WEB-INF/spring-context.xml

</param-value>

</context-param>


<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>



<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>


下面是faces-config.xml檔案:

<application>

<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>

</application>
2)Maven建立
如果使用Maven2,你必須增加一些Spring的依賴。依賴于你使用的其它架構,如Acegi,你還可以增加更多的依賴。如下:

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring</artifactId>

<version>2.0.6</version>

</dependency>



<groupId>cglib</groupId>

<artifactId>cglib</artifactId>

<version>2.1_3</version>




<groupId>asm</groupId>

<artifactId>asm</artifactId>

<version>1.5.3</version>





<artifactId>asm-attrs</artifactId>



