簡體   English   中英

JSF2.0在托管bean之間傳遞Value對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM