在AJAX渲染调用之后,JSF组件丢失了CSS样式

时间:2015-10-16 14:44:10

标签: jsf jsf-2.2 omnifaces

我有一个很复杂的形式,在大多数领域都有验证。在某个地方我有<h:selectOneMenu>,如果我选择某个值,我希望在其下方显示另一个<h:selectOneMenu>。第二个列表最初是不可见的(我将rerender属性设置为false,并使用clickListener()函数将其设为true并将其渲染为ajax调用。)

<o:form>
    <h:panelGroup  id="group" > 
        <label>Status</label>
        <h:selectOneMenu id="status" immediate="true" label="Status" value="#{candidateBean.statusVO}" converter="omnifaces.SelectItemsConverter" required="true" requiredMessage="The field is empty">
            <f:selectItem itemValue="#{null}" itemLabel="-- select one --" />
            <f:selectItems value="#{settingsBean.settings.statusListVO.statusVO}" var="status" itemValue="#{status}" itemLabel="#{status.name}"/>
            <f:ajax  event="valueChange" listener="#{candidateBean.clickListener}" execute="form"  render="group"  />
        </h:selectOneMenu>
        <h:messages for="status" style="color:red" />                  

        <label>Invalidation Reason</label>

        <h:selectOneMenu id="invalidationReason" rendered="#{candidateBean.falseTest}" label="Invalidation Reason" value="#{candidateBean.invalidationReasonVO}" converter="omnifaces.SelectItemsConverter" requiredMessage="The field is empty">
            <f:selectItem itemValue="#{null}" itemLabel="-- select one --" />
            <f:selectItems value="#{settingsBean.settings.invalidationReasonListVO.invalidationReasonVO}" var="invalidation" itemValue="#{invalidation}" itemLabel="#{invalidation.name}"/>
        </h:selectOneMenu>                      

    </h:panelGroup>
</o:form>

我使用<o:form>代替<h:form>,因为我使用<o:ignoreValidationFailed>形式的某个地方,因为我需要使用<h:selectOneMenu>的值更新dataTable并强制更新我的@SessionScoped模型。

一切正常,除非我从列表中选择一个值,panelGroup中的元素将呈现完全没有任何样式,我无法弄清楚原因。如果我刷新页面,CSS将加载到元素上,但这不是一个选项。

我的bean是mmap

0 个答案:

没有答案