关于在SEAM 2.1.2中结束对话

时间:2009-11-03 16:19:52

标签: java jsf seam

我对seam 2.1.2

有疑问

我想在用户点击菜单时结束对话,但这必须在menu.xhtml或pages.xml中完成。我需要这个,因为我有以下问题:

  1. 点击菜单
  2. 中的页面“A”
  3. 点击“搜索”按钮显示列表A.
  4. 忘记列表'A'并单击菜单中的页面'B'。
  5. 点击“搜索”按钮显示列表B.
  6. 再次执行步骤1,即使我没有点击“搜索”按钮,列表“A”也会继续。
  7. 如果我想使用@End,我需要创建一个新方法来启动页面。我在pages.xml中尝试了标签,在菜单中尝试了propagation = end,但是在点击按钮之前列表仍显示结果

    菜单按钮:

    <li><s:link propagation="none" action="/T925Historico.seam" value="Historico 925" /></li> 
    

    pages.xml中

    <page view-id="/T925Historico.xhtml" login-required="true" action="#{usuarioBean.validaUsuario()}">
            <navigation>
                <rule if-outcome="erro">
                    <redirect view-id="/error.xhtml"/>
                </rule>
                <rule if-outcome="detalhe">
                    <redirect view-id="/T925Retorno.xhtml" include-page-params="true" />
                </rule>
                <end-conversation/>
            </navigation>
        </page>
    

    谢谢!

1 个答案:

答案 0 :(得分:2)

<end-conversation/>应位于每个<rule>内,请尝试...

<page view-id="/T925Historico.xhtml" login-required="true" action="#{usuarioBean.validaUsuario()}">
   <navigation>
      <rule if-outcome="erro">
         <redirect view-id="/error.xhtml"/>
         <end-conversation/>
      </rule>
      <rule if-outcome="detalhe">
         <redirect view-id="/T925Retorno.xhtml" include-page-params="true" />
         <end-conversation/>
      </rule>
   </navigation>
</page>