2017-08-10 12 views
0

[短いバージョン説明]:ファイルのアップロード後にinputTextの値を更新する際に問題が発生します。アップロード前に他のinputText要素がいっぱいになっていると動作しません。Primefaces:InputTextフィールドVALUESがFileUploadの後に更新されない

[LONG VERSION]:私は彼らの要素が更新された後(managedBeanに)inputTextフィールドの値を変更し、ファイルをアップロードした後、inputTextフィールドはその新しい値を仮定しない理由を理解する助けが必要。

ページが2つのフラグメント含む、フォームで構成されています

  • 第一1、3つのinputTextフィールドを持っているが - inputText_AinputText_BinputText_C
  • 2番目のファイルには、FileUpload要素のみが含まれています。アップロードされたファイルは、上記のinputTextフィールドを埋めるために使用される値を含みます。
    1. FileUploadが正常に変更さ

      は(()ファイルをアップロードした後にトリガされcategory.setName()とcategory.setValue)managedbeans変数の値を更新:私が見つけた何

  • 私は予想通りすべての作品、私はinputText_Aで何も入力前にファイルをアップロード場合 - inputText_BとinputText_CがのIF は私がinputText_Aに何も入力してからアップロード
  • を更新している値inputText_BとinputText_Cの値に更新されていません。 inputText_Bと_Cがあるため、ユーザー、inputTextsする必要があります:update="fileUploadField inputTextFields"が働いているような場合のいずれか(ゲッターが呼び出され、ファイルがアップロードされた後のフィールドが無効になっている)
  • NOTEで

  • 彼が必要なファイルを持っていない場合に備えて手動で情報を入力するようにしてください。事前に

    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> 
    

    <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> 
    

    uploader.xhtmlありがとう! RMG

  • +0

    は'使用してみてください。 –

    +0

    それは動作しませんでした。アップロード直後の両方の入力フィールドで、更新された値で更新が行われる必要があります。 – RmGZ

    +0

    なぜ大文字のプロパティ名を使用していますか?例えば'#{uploaded.category.Serial}'であってはなりません。 –

    答えて

    0

    UPDATE:

    問題が解消されないが、私は同じvalue="#{uploaded.category.Name}"fragment、2 inputHiddenフィールドの後、formで作成しました。inputHiddenの値は、アップロードされたファイルの値で更新されます(inputTextフィールドでも発生するはずです)。

    なぜinputHiddenでは動作しますが、inputTextフィールドでは動作しないのでしょうか?入力フィールドに `:<更新= "@なし"/ "この@" AJAXプロセス= P>を

    おかげ

    関連する問題