richfaces 4 a4j:commandButton 在 Internet Explorer 上导航失败
richfaces 4 a4j:commandButton navigation fails on internet explorer
我正在使用这个库:
- JSF 2.0.8 (MyFaces)
- 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>
的按钮
我正在使用这个库:
- JSF 2.0.8 (MyFaces)
- 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>
的按钮