我创建了一个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吗?
答案 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配置。)