JSF View Scoped bean幸存重定向到JSP

时间:2012-04-15 19:50:41

标签: ajax jsp jsf redirect

我有一个应用程序在页面上执行一些ajax更新并使用@ViewScoped ManagedBean。 当用户提交表单时,我的action方法重定向到Jsp以使用Cewolf库显示图表。 它工作正常,但看起来这个bean幸存了这个重定向。如果用户单击Jsp上的后退按钮,则所有“呈现的ajax”字段都是空白,但“执行ajax”字段显示前一个值。然后,如果我进行ajax更新,则“空白”字段将使用先前的值...

呈现

重定向代码:

//save
    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
    Map<String, Object> sessionMap = externalContext.getSessionMap();                      
    sessionMap.put("integrator", dataSource);

    try
    {
        FacesContext.getCurrentInstance().getExternalContext().redirect("graph.jsp");
    } catch (IOException ex)
    {
        Logger.getLogger(EquationsBean.class.getName()).log(Level.SEVERE, null, ex);            
    }

我的index.xhtml的一些内容:

<h:selectOneMenu  value="#{equationsBean.equationsToSolve}" id="neqs">
    <f:selectItems value = "#{equationsBean.eqsChoose}" /> 
    <f:ajax render="equationForm" execute ="neqs" listener="# {equationsBean.equationsSelected}"/>
</h:selectOneMenu>

我所期待的是,当我重定向到Jsp时,我的豆子会死掉,如果有的话,表格很新鲜 用户点击后退按钮。我已经尝试过一个过滤器来禁用缓存,但它表现得非常奇怪。另外,我没有使用Jsp标签,只使用facelets,而且某些组件具有'rendered'属性,具体取决于我的bean状态。我应该发布整个.xhtml,但它有点大......

感谢有人可以帮助我理解这种行为!

1 个答案:

答案 0 :(得分:1)

刚刚找到了一个更好的解决方案:使用Primefaces,它不支持XY图表但与JFreeChart集成。

非常感谢!