2013-03-06 71 views
0

這種「嵌套」panelGroup裏面的selectOneMenu允許在JSF中嗎?在selectOneMenu中是否允許panelGroup?

<p:selectOneMenu> 
    <f:selectItem itemValue="MOUNT" itemLabel="Local directory" /> 
    <f:selectItem itemValue="AS3" itemLabel="Amazon S3" /> 
    <f:selectItem itemValue="FTP" itemLabel="FTP site" /> 
    <h:panelGroup rendered="#{ConfigBean.rackspace}"> 
    <f:selectItem itemValue="RCF" itemLabel="RackspaceCloud"/> 
    </h:panelGroup>  
</p:selectOneMenu> 

第四selectItem永遠不會呈現,不管是ConfigBean.rackspacetrue。我也嘗試過p:outputPanel而不是h:panelGroup

回答

1

您可以將它包裝在c:if中,但如果您更改bean中的rackspace,它將不會重新渲染selectitem。

<c:if test="#{ConfigBean.rackspace}"> 
    <f:selectItem itemValue="RCF" itemLabel="RackspaceCloud"/> 
    </c:if> 

記住,JSTL組件執行僅在創建視圖,所以你不能將能夠根據您的bean後續崗位條件添加 <f:selectItem itemValue="RCF" itemLabel="RackspaceCloud"/>

+0

由於某種原因,這不起作用。 :-( – Danijel 2013-03-06 16:24:47

+0

)你是否收到一些錯誤?創建bean後ConfigBean.rackspace的值是多少? – 2013-03-06 16:27:11

+0

非常重要:按如下所示聲明JSTL核心taglib:'。不是''!現在可以運行了。 – Danijel 2013-03-06 16:29:50

1

不能使用<h:panelGroup爲...你最好不要用<c:if爲(INMO其矯枉過正)

,而不是僅僅使用f:selectItems和服務器端有條件加載...

+0

怎麼做?? – Danijel 2013-03-06 16:19:09

+0

例如:http://www.mkyong.com/jsf2/jsf-2-listbox-example/你也可以使用數組列表,它有條件地填充在@ PostConstruct中(而不是getter ...) – Daniel 2013-03-06 16:24:24

+0

OK ,但是,這個解決方案對我來說並不合適,因爲我有其他要排除的組件,而不僅僅是這個。 – Danijel 2013-03-06 16:30:42