Ich versuche, Spring zu verwenden, um verwaltete Beans für jsf bereitzustellen. Ich gehe davon aus, dass @ManagedBean vom JSF-Container aufgegriffen wird, um die EL in JSF mit Managed Beans zu verknüpfen, auch wenn ich Spring verwende, indem ich die Verwendung von Spring in faces-config.xml konfiguriere.
Der Frühling wird die Bohnen liefern, aber jetzt wer verwaltet den Umfang der Bohnen?
Ich habe versucht, folgende Annotation auf Beans, um es zu haben, werden Request Bereich, aber sie funktionieren nicht.
@ManagedBean(name="helloBean") //meant for JSF
@RequestScoped //meant for JSF
@Scope(value="request") //meant for spring
@Controller //meant for spring
public class HelloBean implements Serializable {
Eigentlich früher war ich mit einfachen JSF und @ManagedBean und @RequestScoped waren gut funktionieren. Nun, da ich versucht habe, mit Frühling der Bereich zu integrieren, funktionieren nicht.
Ich habe sogar versucht, Bean-Bereich in Spring Config zu setzen, aber sie funktionieren wie erwartet im Kontext von Frühling (Singleton und Prototyp), aber nicht Web-Anfrage-Kontext.
Ich habe versucht, zu vermeiden, mit oben @Scope und @Controller-Annotation in der Hoffnung, dass JSF wird Umfang verwalten, aber scheinen nicht wie zu verwenden.
Unten sind meine Dateien Snippet für Frühling Config und MyHelloBean, die wahrscheinlich helfen, besser zu kommunizieren.
<bean id="helloBean" class="com.mkyong.common.HelloBean" init-method="init" />
<bean id="myHelloBean" class="com.mkyong.common.MyHelloBean" init-method="init" >
<property name="helloBean" ref="helloBean"></property>
</bean>
@ManagedBean
@RequestScoped
@Scope(value="request")
@Controller
public class MyHelloBean implements Serializable {
private static final long serialVersionUID = 1L;
//@ManagedProperty(value = "#{helloBean}")
private HelloBean helloBean;
siehe in oben MyHelloBean ich bin mit Frühling DI zu halloBean, die von Frühling fein gesetzt wird. Ich habe auskommentiert @ManagedBean, die ich denke, ich kann es in dort lassen, wie es von Frühling irgendwie ignoriert werden und JSF ist nicht gehen, um es zu verarbeiten, ich denke, aber um sicher zu sein, kommentierte ich es für JSF, um es nicht zu verarbeiten.
Zur Vervollständigung verwende ich unten in faces-config, um die Verwendung von Spring zu aktivieren.
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
Herzliche Grüße,
Miten.