Tôi đang cố gắng sử dụng mùa xuân để cung cấp đậu được quản lý để jsf. Tôi giả định rằng @ManagedBean sẽ được chọn bởi JSF container để liên kết EL trong JSF với bean được quản lý ngay cả khi tôi sử dụng spring bằng cách cấu hình việc sử dụng spring trong faces-config.xml.jsf 2.0 mùa xuân 3 phạm vi yêu cầu không làm việc
Mùa xuân sẽ cung cấp hạt nhưng bây giờ , người quản lý phạm vi đậu?
Tôi đã thử chú thích sau trên đậu để nó trở thành Phạm vi yêu cầu nhưng chúng không hoạt động.
@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 {
Thực ra trước đây tôi đã sử dụng JSF đồng bằng và @ManagedBean và @RequestScoped đang làm việc tốt. Bây giờ như tôi đã cố gắng để tích hợp bằng cách sử dụng mùa xuân phạm vi không hoạt động.
Tôi thậm chí đã thử đặt phạm vi đậu trong cấu hình mùa xuân nhưng chúng hoạt động như mong đợi trong ngữ cảnh của mùa xuân (singleton và nguyên mẫu) nhưng không phải bối cảnh yêu cầu web.
Tôi đã cố gắng tránh phải sử dụng chú thích trên @Scope và @Controller với hy vọng rằng JSF sẽ quản lý phạm vi nhưng dường như không thích.
Dưới đây là đoạn tệp của tôi cho cấu hình mùa xuân và MyHelloBean có thể sẽ giúp giao tiếp tốt hơn.
<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;
xem ở trên MyHelloBean Tôi đang sử dụng spring DI để đặt helloBean được đặt vào mùa xuân. Tôi đã nhận xét @ManagedBean mà tôi nghĩ rằng tôi có thể để nó ở đó vì nó sẽ bị bỏ qua bởi mùa xuân bất kỳ cách nào và JSF sẽ không xử lý nó tôi đoán nhưng để được an toàn tôi nhận xét nó ra cho JSF không xử lý nó.
Để hoàn thành, tôi sử dụng bên dưới trong cấu hình khuôn mặt để kích hoạt sử dụng lò xo.
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
Kính trọng,
Miten.
Bạn hoàn toàn đúng. Tôi đã có thể thêm scope = request vào spring config và giữ các hạt jsf cũ của tôi với các chú thích của chúng và nó hoạt động như mong đợi. Tôi đã nhầm lẫn với chú thích và phạm vi ở phía bên xuân. Trả lời khác chia sẻ một số ý tưởng nhiều hơn về phạm vi và tiêm nhưng tôi cảm thấy đối với tôi điều này là đơn giản và dễ dàng di chuyển theo hướng tích hợp mùa xuân vào jsf. Tôi biết chỉ có hai phạm vi cho đậu mùa xuân. các phạm vi khác được liệt kê ở đâu? Spring-web (trình tải ngữ cảnh) hiểu các phạm vi mới này và do đó chúng có ý nghĩa trong ngữ cảnh web-web? hoặc họ có giá trị cho mùa xuân cốt lõi quá tôi nghi ngờ? – Miten
[Tham khảo phạm vi Spring Bean] (http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes) – nobeh