[短文解释] :我在文件上传后更新某些inputText
值时遇到问题。如果在上传之前已填写任何其他inputText
元素,则无效。
[LONG VERSION] :我需要帮助了解上传更改inputText
字段值的文件(在managedBean中)之后的原因inputText
字段在元素更新后假设它们的新值。
该页面由一个Form组成,包含两个片段:
我找到了什么:
FileUpload
成功更改了更新托管变量值(上传文件后触发了category.setName()和category.setValue())。update="fileUploadField inputTextFields"
都有效(调用getter并在文件上传后禁用字段)注意: inputText_B和_C需要是inputTexts,因为如果他没有必要的文件,应该允许用户手动输入信息。
fields.xhtml
<p:fieldset id="inputTextFields" toggleable="true" toggleSpeed="150"
<p:inputText id="inputText_A"
value="#{uploaded.category.serial}"
disabled="#{details.disabled()}"
required="true"
requiredMessage="#{msg['uploaded.category.serial.empty']}"
onblur="deactivateCategoryListOrButton(); setChanged()">
</p:inputText>
<p:inputTextarea id="inputText_B"
value="#{uploaded.category.name}"
disabled="#{details.disabled()}"
required="true"
requiredMessage="#{msg['uploaded.category.name.empty']}"
autoResize="false" rows="4"
valueChangeListener="#{uploaded.fieldListener}"
onblur="deactivateCategoryListOrButton(); setChanged()">
</p:inputTextarea>
<p:inputTextarea id="inputText_C"
value="#{uploaded.category.value}"
disabled="#{details.disabled()}"
required="true"
requiredMessage="#{msg['uploaded.category.name.empty']}"
valueChangeListener="#{uploaded.fieldListener}"
onblur="deactivateCategoryListOrButton(); setChanged()">
</p:inputText>
</p:fieldset>
uploader.xhtml
<p:fieldset id="fileUploadField" toggleable="true" toggleSpeed="150"
<h:panelGroup>
<p:fileUpload id="#{details.fileUploadCompIdRule}"
fileUploadListener="#{details.handleFileUpload}"
mode="advanced" allowTypes="/(\.|\/)(xml)$/"
label="#{msg['uploaded.category.button.browse']}"
multiple="false" auto="true"
update="fileUploadField inputTextFields"
disabled="#{details.categoryActive()}"
oncomplete="deactivateCategoryListOrButton(); setChanged()" />
</h:panelGroup>
</p:fieldset>
提前致谢! RMG
答案 0 :(得分:0)
更新:
问题仍然存在,但我在form
之后,fragment
,2 inputHidden
个字段后面创建了同一个value="#{uploaded.category.Name}"
。 inputHidden
值会使用上传文件的值进行更新(因为它应该也会出现在inputText
字段中)。
知道为什么它在inputHidden
但不在inputText
字段中工作?
由于