在重定向上销毁View范围bean

时间:2014-06-13 20:15:40

标签: jsf-2

我有一个像下面给出的Managed Bean。方法[ redirectToViewC ]返回到同一页面(viewC.xhtml)。一旦动作方法执行结束,我想销毁bean 。 如果我返回 viewC?faces-redirect = true ,那么JSF2正在创建bean的新实例。也没有调用Destroy方法id。

如果我返回同一页面,请告诉我如何销毁视图范围的bean。 如果我使用externalcontext.redirect()方法重定向到不同的页面,还有一种方法可以从actionListener方法中销毁视图范围的bean

@ViewScoped

public class ViewC {

private String label ;
public ViewC(){
    System.out.println("Constructed View Bean C");
}
@PostConstruct
public void init(){
    label = "This is view C";
    System.out.println("Initialized View Bean C");
}
@PreDestroy
public void release(){
    System.out.println("Destroy View Bean C");
}
public String redirectToViewC(){
    /*try {
        FacesContext.getCurrentInstance().getExternalContext().redirect("/Test/viewC.jsf?faces-redirect=true");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }*/
    return "viewC?faces-redirect=true";
}
public String getLabel() {
    return label;
}
public void setLabel(String label) {
    this.label = label;
}

}

0 个答案:

没有答案