我已经考虑了一段时间 - 没有好主意。
这就是问题所在。我将不得不在文本框中或作为输出文本显示文本。如何在JSF中使用布尔变量来执行此操作?
我不想创建一个h:inputText并禁用/ make read,它基于boolean,我想显示一个干净的标签或输出文本。
建议?
答案 0 :(得分:6)
使用rendered
属性。它需要一个布尔表达式。
<h:inputText value="#{bean.input}" rendered="#{bean.editmode}" />
<h:outputText value="#{bean.input}" rendered="#{!bean.editmode}" />
如果表达式求值true
,则组件将在组件树中呈现,并在生成的HTML输出中可见。如果它评估false
,它将不会被渲染,因此不会被发送到HTML输出。
以下是其他一些如何表达布尔表达式的例子。
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue > 10}" />
<h:someComponent rendered="#{bean.objectValue == null}" />
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty bean.collectionValue}" />
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" />
<h:someComponent rendered="#{bean.stringValue == 'oneValue' || bean.stringValue == 'anotherValue'}" />