是否可以根据条件隐藏div
等(就像在渲染属性中使用EL一样),而不必将其包含在具有渲染属性的<h:panelGrid ...>
等中?它破坏了我的布局。我只需要逻辑,而不是布局。
答案 0 :(得分:12)
首先,你不应该用h:gridPanel
包裹你的元素,这会导致html table
相反,您应该使用h:panelGroup
换行,这会在html代码中生成span
,您也可以将layout="block"
添加到h:panelGroup
以使其呈现为div
第二,你隐藏div
时不要使用jstl,而是做这样的事情
<div style="display:#{(myBean.hideSomeDiv)?'none':'block'}">My Div Content</div>
或
<h:panelGroup styleClass="#{(myBean.hideSomeDiv)?'hide':''">My Span Content</h:panelGroup>
在css文件中添加以下内容:
.hide {
display: none;
}
INMO 你最好用rendered="#{myBean.renderCondition}"
隐藏在JSF中
在这里看看BalusC Conditionally displaying JSF components
答案 1 :(得分:2)
你可以这样做:
<div style="display:#{yourBean.property}"></div>
其中yourBean.property会返回'none'来隐藏div
答案 2 :(得分:-1)
对我来说,它只是在没有括号的情况下工作,例如:
<div style="display:#{!isDisplayed ? 'none' : 'block'}">My Div Content</div>
或
<h:panelGroup styleClass="#{!isDisplayed ? 'hide' : ''}">My Span Content</h:panelGroup>