0
[簡短說明]:我在文件上傳後更新inputText
值時出現問題。如果在上傳之前填寫了其他inputText
元素,則此功能無效。Primefaces:InputText字段值在FileUpload後不更新
[長版]:我需要幫助理解爲什麼上傳改變的inputText
字段的值(在managedBean)的文件後,inputText
字段不其元素已被更新後,承擔起自己的新值的原因。
頁由表格的,含有2個片段:
- 的第一一個,有3個的inputText字段 - inputText_A,inputText_B和inputText_C;
- 第二個只包含一個FileUpload元素。上傳的文件包含用於填充上述inputText字段的值;
我發現:
FileUpload
成功地改變更新managedbeans變量的值(category.setName()和category.setValue()上傳文件後觸發)。- IF我上傳的文件之前我inputText_A輸入任何內容,一切正常 - 在inputText_B和inputText_C值是更新
- IF我inputText_A輸入任何東西,然後上傳文件,則inputText_B和inputText_C值不是已更新。
- 在任何的那些
update="fileUploadField inputTextFields"
工作(干將被調用,該文件已被上傳後場被禁用)
注意的情況:的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
嘗試在輸入字段上使用'
'。 –它沒有工作。我需要在上傳後立即在兩個輸入字段中進行更新,並更新值。 – RmGZ
爲什麼你使用大寫的屬性名稱?例如'#{uploaded.category.Serial}',不應該是'#{uploaded.category.serial}'嗎? –