richfaces 4 a4j:commandButton 在 Internet Explorer 上导航失败

richfaces 4 a4j:commandButton navigation fails on internet explorer

我正在使用这个库:

  1. JSF 2.0.8 (MyFaces)
  2. Richfaces 4.5.7

我有这段代码用于使用 <a4j:commandButton> 组件测试导航:

<f:view>

    <h:form id="form_citas_uno">

        <h:panelGrid id="pnlBtnes">
            <a4j:commandButton id="cb_agendar_id" value=" "
                styleClass="btnNuevoAgendamiento"
                action="irAgendarCita" >
            </a4j:commandButton>    
            <a4j:commandButton id="cb_agendar_id2" value=" "
                styleClass="btnNuevoAgendamiento"
                action="irAgendarCitaAfiliado" >
            </a4j:commandButton>
        </h:panelGrid>  

    </h:form>

</f:view>

结果 irAgendarCita 的导航规则是:(适用于 Firefox 和 Chrome)

<navigation-case>
    <from-outcome>irAgendarCita</from-outcome>
    <to-view-id>/jspx/agendamiento/externo/datosCita.jspx</to-view-id>                               
</navigation-case>

结果 irAgendarCitaAfiliado 的导航规则是:(适用于所有浏览器)

<navigation-case>
    <from-outcome>irAgendarCitaAfiliado</from-outcome>
    <to-view-id>/jspx/agendamiento/afiliado/datosCitaAfiliado.jspx</to-view-id> 
    <redirect/>          
</navigation-case>

只有<redirect/>个区别

导航适用于 Firefox 和 Chrome,但对于 Internet Explorer,第一个 (irAgendarCita) 会引发错误:

SCRIPT5007: Object expected
File: jsf.js.jspx, Line: 6631, Column: 13

这是正常行为吗?

我必须更改所有 a4j:commandButtons 才能执行导航吗?

我必须更改所有导航规则吗?

注意: 我正在从 jsf 1.2 迁移,这个 a4j:commandButtons 在以前的版本中运行良好。

我在 documentation of 3.3.X 版本的 richfaces

上找到了这条评论

Common JSF navigation could be performed after an Ajax submit and partial rendering, but Navigation Case must be defined as <redirect/> in order to avoid problems with some browsers.

我假设这个问题在版本 4 中仍然存在。

当我需要向前导航时,我将替换 <h:commandButton> 的按钮