使用 primefaces 进行野蝇迁移后,tabView 中的选项卡未更新
tabs in a tabView not updated after wildfly migration with primefaces
我使用的是 primefaces 3.5 JBoss 7.1.1。 我正在将我的应用程序迁移到 Wildfly 9.0.2。
以下代码用于 JBoss 但不再用于 WildFly。
<p:tabView id="tabView" dynamic="true" cache="false" style="width:1120px">
<f:event listener="#{ucoController.loadUcoConfiguration}" type="preRenderView" />
<p:tab id="Activation" title="SOMF Activation">
<h:panelGrid id="ActivationPG" columns="1" cellpadding="10" border="0">
<h:form id="user" class="sgdsForm clear">
<script type="text/javascript">
function startAjaxStatus(){
document.getElementById("tabView:user:image").style.display='block';
document.getElementById("tabView:user:shutDown").style.display='block';
}
</script>
<ol>
<li>
<label for="activate" class="label">SOMF Activation</label>
<p:selectBooleanCheckbox value="#{configurationBean.SOMFActivated}" />
</li>
<li>
<br/>
<h:outputText value="#{configurationBean.SOMFActivationMessage}" style="float:left; text-align:left;margin-leftt:7px;color:#0F5795;font-weight:bold;font-size:0.9em;line-height:23px;"/>
</li>
<li>
<br/>
<p:commandButton ajax="false" global="#{configurationBean.SOMFActivated}" onclick="startAjaxStatus()" value="Update" actionListener="#{ucoController.updateUco}" id="updateActivation" icon="ui-icon-disk" update=":tabView:user,:tabView:ScreeningForm>
</p:commandButton>
</li>
</ol>
<h:panelGrid columns="2" border="0" >
<h:outputText value="Update in progress..." id="shutDown" style="color:#0F5795;font-weight:bold;font-size:0.9em;line-height:23px;display:none;"/>
<p:graphicImage value="resources/img/load.gif" id="image" style="display:none;"/>
</h:panelGrid>
</h:form>
</h:panelGrid>
</p:tab>
<p:tab id="Screening" title="Screening" rendered="#{ucoController.disableConfiguration}">
<h:panelGrid id="ScreeningPG" columns="1" cellpadding="10" border="0">
<h:form id="ScreeningForm" class="sgdsForm clear" >
<ol>
<li>
<label for="analysis" class="label required">Think Time (ms)</label>
<h:inputText id="thinkTime" value="#{configurationBean.screeningThinktime}" maxlength="5" readonly="#{configurationBean.SOMFActivated}">
<f:validator validatorId="screeningTimeValidator" />
<f:attribute name="autoScreening" value="#{configurationBean.automaticScreening}" />
</h:inputText>
</li>
<li>
<label for="activate" class="label">Automatic Screening</label>
<p:selectBooleanCheckbox value="#{configurationBean.automaticScreening}" readonly="#{configurationBean.SOMFActivated}" disabled="#{configurationBean.SOMFActivated}"/>
</li>
<li>
<br/>
<p:commandButton disabled="#{configurationBean.SOMFActivated}" oncomplete="handleComplete(xhr, status, args)" value="Update" actionListener="#{ucoController.updateUco}" id="updateScreening" icon="ui-icon-disk" process="@this,ScreeningForm" update=":tabView:ScreeningPG"/>
</li>
</ol>
</h:form>
</h:panelGrid>
</p:tab>
</p:tabView>
还有我的支持 bean :
@ManagedBean(name = "ucoController", eager = true)
@SessionScoped
public class UcoController implements Serializable {
public final ConfigurationBean loadConfiguration() {
// load configuration
}
public final void updateUco(ActionEvent event) {
// update configuration
}
}
我想知道为什么在提交表单时没有触发 updateUco 方法。结果我的表格似乎没有提交!型号不变。
mojarra版本或者primefaces有什么问题吗?
我经历了这个 exhaustive answer 是为了解决同样的问题。但是 none 所描述的观点适合我的情况!
请将 primefaces 升级到 4.0 版以支持 Wildfly 9.0.2 支持的 JSF 2.2 版。
我使用的是 primefaces 3.5 JBoss 7.1.1。 我正在将我的应用程序迁移到 Wildfly 9.0.2。
以下代码用于 JBoss 但不再用于 WildFly。
<p:tabView id="tabView" dynamic="true" cache="false" style="width:1120px">
<f:event listener="#{ucoController.loadUcoConfiguration}" type="preRenderView" />
<p:tab id="Activation" title="SOMF Activation">
<h:panelGrid id="ActivationPG" columns="1" cellpadding="10" border="0">
<h:form id="user" class="sgdsForm clear">
<script type="text/javascript">
function startAjaxStatus(){
document.getElementById("tabView:user:image").style.display='block';
document.getElementById("tabView:user:shutDown").style.display='block';
}
</script>
<ol>
<li>
<label for="activate" class="label">SOMF Activation</label>
<p:selectBooleanCheckbox value="#{configurationBean.SOMFActivated}" />
</li>
<li>
<br/>
<h:outputText value="#{configurationBean.SOMFActivationMessage}" style="float:left; text-align:left;margin-leftt:7px;color:#0F5795;font-weight:bold;font-size:0.9em;line-height:23px;"/>
</li>
<li>
<br/>
<p:commandButton ajax="false" global="#{configurationBean.SOMFActivated}" onclick="startAjaxStatus()" value="Update" actionListener="#{ucoController.updateUco}" id="updateActivation" icon="ui-icon-disk" update=":tabView:user,:tabView:ScreeningForm>
</p:commandButton>
</li>
</ol>
<h:panelGrid columns="2" border="0" >
<h:outputText value="Update in progress..." id="shutDown" style="color:#0F5795;font-weight:bold;font-size:0.9em;line-height:23px;display:none;"/>
<p:graphicImage value="resources/img/load.gif" id="image" style="display:none;"/>
</h:panelGrid>
</h:form>
</h:panelGrid>
</p:tab>
<p:tab id="Screening" title="Screening" rendered="#{ucoController.disableConfiguration}">
<h:panelGrid id="ScreeningPG" columns="1" cellpadding="10" border="0">
<h:form id="ScreeningForm" class="sgdsForm clear" >
<ol>
<li>
<label for="analysis" class="label required">Think Time (ms)</label>
<h:inputText id="thinkTime" value="#{configurationBean.screeningThinktime}" maxlength="5" readonly="#{configurationBean.SOMFActivated}">
<f:validator validatorId="screeningTimeValidator" />
<f:attribute name="autoScreening" value="#{configurationBean.automaticScreening}" />
</h:inputText>
</li>
<li>
<label for="activate" class="label">Automatic Screening</label>
<p:selectBooleanCheckbox value="#{configurationBean.automaticScreening}" readonly="#{configurationBean.SOMFActivated}" disabled="#{configurationBean.SOMFActivated}"/>
</li>
<li>
<br/>
<p:commandButton disabled="#{configurationBean.SOMFActivated}" oncomplete="handleComplete(xhr, status, args)" value="Update" actionListener="#{ucoController.updateUco}" id="updateScreening" icon="ui-icon-disk" process="@this,ScreeningForm" update=":tabView:ScreeningPG"/>
</li>
</ol>
</h:form>
</h:panelGrid>
</p:tab>
</p:tabView>
还有我的支持 bean :
@ManagedBean(name = "ucoController", eager = true)
@SessionScoped
public class UcoController implements Serializable {
public final ConfigurationBean loadConfiguration() {
// load configuration
}
public final void updateUco(ActionEvent event) {
// update configuration
}
}
我想知道为什么在提交表单时没有触发 updateUco 方法。结果我的表格似乎没有提交!型号不变。
mojarra版本或者primefaces有什么问题吗?
我经历了这个 exhaustive answer 是为了解决同样的问题。但是 none 所描述的观点适合我的情况!
请将 primefaces 升级到 4.0 版以支持 Wildfly 9.0.2 支持的 JSF 2.2 版。