Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf inputText上的呈现属性_Jsf - Fatal编程技术网

Jsf inputText上的呈现属性

Jsf inputText上的呈现属性,jsf,Jsf,我有一个搜索表单绑定到一个包含4个输入文本字段的支持bean。我正在使用的设计表明,用户应该能够看到搜索结果,但它们不应该是可编辑的。如果托管bean为空,我决定使用rendered属性显示输入,如果不是空,则显示输出文本标记: <t:inputText styleClass="inputText" id="name" rendered="#{not searchCriteria.fieldsEntered}" value="#{searchCriteria.name}" autocomp

我有一个搜索表单绑定到一个包含4个输入文本字段的支持bean。我正在使用的设计表明,用户应该能够看到搜索结果,但它们不应该是可编辑的。如果托管bean为空,我决定使用rendered属性显示输入,如果不是空,则显示输出文本标记:

<t:inputText styleClass="inputText" id="name" rendered="#{not searchCriteria.fieldsEntered}"
value="#{searchCriteria.name}" autocomplete="off"></t:inputText>
<h:outputText value="#{searchCriteria.name}" rendered="#{searchCriteria.fieldsEntered}"></h:outputText>                                     

显示部分工作正常,但我注意到,当输入多个搜索字段时,只有第一个字段存储在托管bean中

我从inputText中删除了一个渲染属性,这确实导致了我的问题。我可以推断出这里发生了什么,但我不明白为什么

我相信在这种情况下,我只需删除outputText标记并将渲染更改为disabled。我只是好奇为什么我的初始计划不正确。

呈现的
rendered=“false”
将导致输入元素未呈现,因此其值不会提交到服务器端。如果您使用的是请求范围的bean,则不会设置初始值。您希望将bean放入会话范围,或者沿着
h:outputText
添加一个
h:inputHidden
,将值传输到后续请求

因为您已经在使用它的
displayValueOnly
属性,而不是
rendered
属性和一个补充的
h:outputText

在螺母中:

<t:inputText displayValueOnly="#{searchCriteria.fieldsEntered}" ... />