2013-03-06 40 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