h:按下浏览器后退按钮

时间:2017-08-28 19:10:53

标签: jsf richfaces seam

我在网上对此类问题进行了一些调查后,我仍然无法找到合适的解决方案。 我必须使用的技术堆栈是 JSF 1.x JBoss Seam 2.2.x richfaces 3.3.x 。所以场景是:

  1. UI
  2. 该页面包含两个主要部分,上部是为用户提供搜索结果的一些标准,下部是显示结果。 在这里,我使用richfaces.dataTable来填充结果。我们还提供了加载结果项详细信息的链接(h:commandLink)。 dataTable当然最初不是使用h:panelGroup的呈现属性显示的。 它看起来像:

    <h:panelGroup rendered="#{results.size gt 0 and not showDetail}"> 
        <rich:dataTable
                        id="results-table"
                        value="#{results}"
                        var="row"
                        rows="#{rowPerPage}"
                        styleClass="table"
                        rendered="#{not empty requests}">  
        ......     
          <rich:column>
            <f:facet name="header">
                Action
            </f:facet>
            <h:commandLink value="DETAILS"
                           action="#{viewBean.showDetailContext(row)}"
                           styleClass="link">
            </h:commandLink>
          </rich:column>
          ......
        </rich:dataTable>
    </h:panelGroup>
    
    1. 个ViewBean
    2. 代码:

      @Scope(ScopeType.CONVERSATION)
      @Name("result.view")
      public class ResultView {
      public void showDetailContext(T detailContext) throws Exception {
          _detailContext = detailContext;
          initListDetails();
          setShowDetail(true);
      }
      protected void initListDetails() throws Exception { 
         //...... 
      }
      }
      

      进行一些搜索后,用户界面将如下: View with Results

      所以此时,用户可以点击“详细信息”链接并导航到详细信息视图,如: Details View

      现在的问题是,当我们点击浏览器后退按钮时,我们将返回上一个“带结果的视图”,如果用户单击其他项目的详细信息链接,详细信息视图仍会显示以前的详细信息在截图中。

      非常感谢任何建议。

0 个答案:

没有答案