什么放入applicationContext和faces-config?

时间:2017-04-21 06:32:36

标签: spring jsf jsf-2

我创建了一个JSF应用程序,我不确定应该在faces-config中添加什么内容?

我的一个ManagedBeans如下所示:

@ManagedBean(name = "ProfileBean")
@ViewScoped
public class ProfileBean implements Serializable

我的applicationcontext

<context:annotation-config />

<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />

<bean id="QuestionDao" class="code.elephant.dao.QuestionDao"></bean>

<bean id="QuestionService" class="code.elephant.service.QuestionService">
    <constructor-arg ref="QuestionDao"/>
</bean>

<bean id="QuestionBean" class="controller.QuestionBean">
    <constructor-arg ref="QuestionService"/>
</bean>

<bean id="UserDao" class="code.elephant.dao.UserDao"></bean>
<bean id="UserService" class="code.elephant.service.UserService">
    <constructor-arg ref="UserDao"/>
</bean>

<bean id="LoginBean" class="controller.LoginBean">
    <constructor-arg ref="UserService"/>
</bean>

<bean id="ProfileBean" class="controller.ProfileBean">
    <constructor-arg ref="UserService" />
    <property name="_LoginBean" ref="LoginBean"></property>
</bean>

my faces-config

   <application>
        <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
    </application>

我在<managed-beans>中看到了一些定义java-faces.config的示例,但我已经在java类中使用了@ManagedBean注释。这有必要吗?我的设置与jsf弹簧是否正确?我还应该在faces-config中定义托管bean吗?

1 个答案:

答案 0 :(得分:2)

您在faces-config中配置的SpringBeanFacesELResolver的目的是使它可以使用Spring bean而不是旧式JSF托管bean或CDI依赖注入。

@ManagedBean课程中删除ProfileBean注释。您不需要它,因为您使用的是Spring而不是JSF的旧托管bean机制。

@ManagedBean注释是旧版JSF的残余;如果您使用的是较新版本的JSF,请不要使用它。当前版本的JSF使用CDI(用于依赖注入的标准Java EE API),但您使用的是Spring,因此您应该以Spring方式配置Bean(自从您定义ProfileBean以来,您已经在使用它你的Spring XML配置。)