How to hide elements in JSF?

jsf

Solution

first of all you should not wrap your elements with `h:gridPanel` which results in html `table`

instead you should wrap with `h:panelGroup` which results in `span` in html code , you can also add `layout="block"` to `h:panelGroup` to make it rendered as `div`

second you dont not use jstl when hiding `div` instead do something like this

<div style="display:#{(myBean.hideSomeDiv)?'none':'block'}">My Div Content</div>

or

<h:panelGroup styleClass="#{(myBean.hideSomeDiv)?'hide':''">My Span Content</h:panelGroup>

where in css file add this :

.hide { 
    display: none;
}

INMO you always better hide in JSF with `rendered="#{myBean.renderCondition}"`

Take a look at BalusC over here Conditionally displaying JSF components

Problem

Is it possible to hide a `div` etc based on a condition (like you do in rendered attribute with EL) without having to wrap it in a `<h:panelGrid ...>` etc with a rendered attribute? It ruins my layout. I just need it for the logic, not the layout.

Original source

Related problems