JSF 元素的条件顺序
Conditional Order of JSF Elements
我有两个 JSF 元素(例如,一个输入文本和一个图像)。对于某些情况(例如,如果用户已登录),我希望首先呈现输入文本。对于相反的情况(例如,用户是匿名的),我希望先渲染图像。有没有办法做到这一点(可以扩展到不仅仅是 2 个元素)?我唯一的想法如下:
<h:inputText rendered=#{condition}/>
<h:graphicImage/>
<h:inputText rendered=#{!condition}/>
我会用 CSS 来解决这个问题。大致可以归结为:
XHTML:
<div class="container input#{condition ? 'First' : 'Last'}">
<h:inputText/>
<h:graphicImage/>
</div>
CSS:
.container { overflow: auto; }
.container.inputFirst input { float: left; }
.container.inputLast input { float: right; }
同样,这很粗糙。这只是给你一个想法。根据您的需要定制它。您可以通过多种方式设置此样式。
如果你想使用 flex,试试:
.container { display: flex; }
.container.inputLast { flex-direction: row-reverse; }
我有两个 JSF 元素(例如,一个输入文本和一个图像)。对于某些情况(例如,如果用户已登录),我希望首先呈现输入文本。对于相反的情况(例如,用户是匿名的),我希望先渲染图像。有没有办法做到这一点(可以扩展到不仅仅是 2 个元素)?我唯一的想法如下:
<h:inputText rendered=#{condition}/>
<h:graphicImage/>
<h:inputText rendered=#{!condition}/>
我会用 CSS 来解决这个问题。大致可以归结为:
XHTML:
<div class="container input#{condition ? 'First' : 'Last'}">
<h:inputText/>
<h:graphicImage/>
</div>
CSS:
.container { overflow: auto; }
.container.inputFirst input { float: left; }
.container.inputLast input { float: right; }
同样,这很粗糙。这只是给你一个想法。根据您的需要定制它。您可以通过多种方式设置此样式。
如果你想使用 flex,试试:
.container { display: flex; }
.container.inputLast { flex-direction: row-reverse; }