[英]JSF2.0 Passing Value objects between managed beans
我已經使用Weblogic 10.3.4,PrimeFaces和JQuery編寫了一個小型JSF2.0應用程序。 我現在正在考慮將我們的主Web應用程序轉換為JSF2.0。 目前使用的是Weblogic 8.1,Java 1.4和JSP。 我現在的問題是將對象從一個托管bean傳遞到另一個托管bean的最佳方法是什么。 我們的應用程序由許多屏幕組成,但是一般模式是在第一個屏幕上輸入的引用,在提交時,這將從數據庫中查找並填充值對象(標准java bean)。 然后返回屏幕2,其通常是由值對象的變量組成的形式,准備編輯。
目前,所有必需對象都作為屬性保存在第一個屏幕中的HTTPServletRequest對象中(在自定義編寫的控制器類中),然后在后續屏幕中從中檢索。
這仍然是這樣做的方式,還是我錯過了一種新的“JSF”方式。 我還考慮將這些值對象存儲在用戶會話bean(我們將會擁有它)中,然后在需要時從那里檢索。 我假設包含值對象的Map在這種情況下是最好的方法嗎?
您可以通過@ManagedProperty
在另一個托管bean中注入托管bean。
假設你有一個像這樣的會話范圍的bean
@ManagedBean
@SessionScoped
public class User {
// ...
}
還有像這樣的請求范圍的bean
@ManagedBean
@RequestScoped
public class Profile {
@ManagedProperty(value="#{user}") // #{user} is the managed bean name
private User user;
@PostConstruct
public void init() {
// User is available here for the case you'd like to work with it
// directly after bean's construction.
}
public String save() {
// User is available here as well, during action methods.
userDAO.save(user);
}
// +getter +setter
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.