JSF selectOneMenu根本不渲染

时间:2013-09-17 13:23:53

标签: jsf rendering fragment icefaces selectonemenu

我正在尝试使用icefaces 1.8在UI片段中添加JSF selectOneMenu,无论我做什么都无法渲染它。我可以让它在普通的jspx页面中呈现,但不能在ui片段中呈现。

<ui:fragment 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:ice="http://www.icesoft.com/icefaces/component">
    <ice:selectOneMenu id="myselect"
                       style="width:100px"
                       value="#{someField}"  
                       rendered="true">                                         
                             <f:selectItem itemValue="1" itemLabel="1"/>
                             <f:selectItem itemValue="2" itemLabel="2"/>
                             <f:selectItem itemValue="3" itemLabel="3"/>
                     </ice:selectOneMenu>
</ui:fragment>

我错过了一些基本的东西吗?我是JSF的新手。如果我将完全相同的selectOneMenu拉出到jspx中它可以正常工作,但是当我包含一个ui片段时它不会。

编辑BalusC:

稍后将片段用于带有

的jspx文件中
<ui:include src="myfile.jspx">
   <ui:param name="someField" value="#{beanName.someField}"
</ui:include>

我要离开现有的。包含中有更多内容可以按预期工作,我可以将其他组件(如outputText)添加到ui:fragment中,但它没有任何区别。完整的片段如下。我也可以发布jspx的完整包含。

<ui:fragment 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:ice="http://www.icesoft.com/icefaces/component">

    <ice:panelGrid cellspacing="0" cellpadding="0" columns="3">
        <!-- This component is displayed when the form is opened for editing or display mode-->
        <ice:panelGroup rendered="#{not beanName.outputOnlyView }">

                <!-- This component is displayed when the form is opened for display mode in EDM stage-->
                <ice:panelGroup rendered="#{beanName.displayMode}">
                        <ice:outputText 
                                        id="#{fieldId }" 
                                        style="#{inlineStyleField}" 
                                        value="#{fieldValue}"  >
                        </ice:outputText>
                </ice:panelGroup>   

                    <ice:selectOneMenu id="myselect"
                                              style="width:100px"
                                              value="#{someField}"
                                              rendered="#{not beanName.outputOnlyView}">                                            
                             <f:selectItem itemValue="IntranetID" itemLabel="Intranet ID"/>
                             <f:selectItem itemValue="Name" itemLabel="Last Name, First Name"/>
                             <f:selectItem itemValue="KnownAs" itemLabel="Known As"/>
                     </ice:selectOneMenu>

                <!-- This component is displayed when the form is opened for editing mode in Submitter stage-->
                <ice:panelGroup rendered="#{!beanName.displayMode}" panelTooltip="#{fieldId}Help">
                    <ice:panelGrid style="#{inlineStyle}" cellspacing="0" cellpadding="0" columns="3">
                        <!-- Column 1 the component -->
                        <ice:selectInputText id="#{fieldId }"          
                                             binding="#{feildBinding}"                       
                                             options="{frequency:0.4}"
                                             rows="20"   
                                             width="100"
                                             partialSubmit="true"
                                             immediate="true"
                                             autocomplete="true"                                    
                                             value="#{fieldValue}"
                                             rendered="#{not beanName.outputOnlyView}"
                                             readonly="#{beanName.globalReadOnly }"
                                             listVar="employee"
                                             listValue="#{beanName[employeeSelect].employeeNamePossibilities}"
                                             valueChangeListener="#{beanName[valueChangeListener] }"
                                             textChangeListener="#{beanName[textChangeListener]}">
                            <f:facet name="selectInputText">
                                <ice:panelGrid columns="1">
                                    <ice:panelGrid columns="2" columnClasses="searchCol1,searchCol2">
                                        <ice:outputText id="name" value="#{employee.name}"/>
                                        <ice:outputText id="email" value="#{employee.email}"/>
                                    </ice:panelGrid>
                                    <ice:panelGrid columns="3" columnClasses="searchCol4,searchCol3,searchCol5">
                                        <ice:outputText id="function" value="#{employee.function}"/>
                                        <ice:outputText id="subfunction" value="#{employee.subfunction}"/>
                                        <ice:outputText id="stat1" value="#{employee.stat1}"/>
                                    </ice:panelGrid>
                                </ice:panelGrid>
                            </f:facet>          
                        </ice:selectInputText>                  
                        <!-- Column 2:  Error Messages for this component -->
                        <ice:message style="color:red;" id="#{fieldId}Error" for="#{fieldId}" showDetail="true"/> 

                        <!-- Column 3:  HoverHelp if required -->
                        <ui:include src="../inc-components-pcr/sub-components-pcr/hoverHelpColumnAndTooltip.jspx"/>             
                    </ice:panelGrid>
                </ice:panelGroup>   
        </ice:panelGroup>

    </ice:panelGrid>
</ui:fragment>

1 个答案:

答案 0 :(得分:0)

我在页面上多次包含模板,导致多个相同id的实例导致它根本不呈现。因此,自初始渲染以来最初隐藏的一个能够显示的结束时的行为将不会使该ID保持可用。愚蠢的错误。