我在rich:modal面板中遇到了类似向导的行为问题。 我已经阅读了这些教程以及此http://maxkatz.sys-con.com/node/1428854/mobile和此http://www.mkyong.com/jsf2/jsf-form-action-navigation-rule-example/。但他们没有任何帮助。 我的代码如下:
面-配置:
<!-- WizardProject -->
<navigation-rule>
<from-view-id>/widgets/wizard/ProjectStep.xhtml</from-view-id>
<navigation-case>
<from-action>#{projectWizard.goNext}</from-action>
<from-outcome>SUCCESS</from-outcome>
<to-view-id>/widgets/wizard/InfoStep.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{projectWizard.goNext}</from-action>
<from-outcome>FAIL</from-outcome>
<to-view-id>/widgets/wizard/InfoStep.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
我的Richpanel:
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<!--
Parameters:
id - modal dialog id
bean
src - firstWizardPage
-->
<rich:modalPanel id="#{id}" width="750" resizeable="false" autosized="true">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Wizard"/>
</h:panelGroup>
</f:facet>
<h:form>
<h:panelGroup id="test">
<a4j:include id="wizardPage" viewId="#{src}"/>
</h:panelGroup>
</h:form>
</rich:modalPanel>
</ui:composition>
模态面板正确获取参数。第一页打开,之后调用bean。
这是第一页 - ProjectStep.xhtml
<h:panelGroup xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:c="http://java.sun.com/jstl/core">
<h:outputText value="I've opened up #{bean}" />
<h:inputText value=" " />
<div class="actionButtons">
<div class="actionCancelButtons">
<a4j:commandButton id="btnNext"
value="Next"
action="#{bean.goNext()}"
style="display:#{bean.isCanGoNext() ? '' : 'none'}"
reRender="test"/>
<a4j:region>
<a4j:commandButton onclick="#{rich:component(id)}.hide()"
value="Cancel"
style="display:#{bean.isCanCancel() ? '' : 'none'}"/>
</a4j:region>
</div>
</div>
</h:panelGroup>
我尝试使用ui:composition而不是h:panelGroup。它没用。第二页以同样的方式实现。
当我点击Next时,我的bean返回SUCCESS消息,但页面不会被更改。
请,任何人都知道出了什么问题?
答案 0 :(得分:0)
将<redirect/>
属性添加到faces_config.xml,并可能尝试ajaxRendered="true"
上的<a4j:include/>
。 绝对确保您的导航案例正在被调用。 faces_config应该看起来像
<navigation-rule>
<from-view-id>/widgets/wizard/ProjectStep.xhtml</from-view-id>
<navigation-case>
<from-action>#{projectWizard.goNext}</from-action>
<from-outcome>SUCCESS</from-outcome>
<to-view-id>/widgets/wizard/InfoStep.xhtml</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-action>#{projectWizard.goNext}</from-action>
<from-outcome>FAIL</from-outcome>
<to-view-id>/widgets/wizard/InfoStep.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>