11

モデルを作成するとき、モデルの画像を保存したいと思います。PrimeFaces fileUpload コンポーネントを使用しています。写真を保存するとき、特定の画像がどのモデルを参照しているかを知りたいです。そのため、モデルの ID をバッキング Bean に送信する必要があります。

モデルのIDfileUploadListenerに送信する可能性はありますか?

<h:form enctype="multipart/form-data">
  <p:panelGrid columns="2">
    <h:outputLabel for="hotelName" value="#{msg.hotelName}"/>
    <p:inputText value="#{apartmentNew.name}" id="hotelName"/>
    <h:outputLabel for="hotelDescription" value="#{msg.hotelDescription}"/>
    <p:inputText value="#{apartmentNew.description}" id="hotelDescription"/>
    <h:outputLabel for="hotelImages" value="#{msg.hotelImages}"/>
    <h:form enctype="multipart/form-data">
      <p:fileUpload id="hotelImages"
                    fileUploadListener="#{apartments.handleImageUpload}"
                    mode="advanced"
                    sizeLimit="10000000"
                    allowTypes="/(\.|\/)(gif|jpe?g|png)$/">
      </p:fileUpload>
    </h:form>
  </p:panelGrid>
  <p:commandButton id="saveApartmentButton" value="#{msg.save}" action="save"/>
  <p:commandButton id="cancelCreationApartmentButton" value="#{msg.cancel}" 
     action="cancel"/>
</h:form>
4

4 に答える 4

2

アップロードされたファイルとともにキー パラメータを渡す必要がありました。fileUploadListenerAPPLY_REQUEST_VALUES フェーズで実行されることがわかったため、f:attributeタグで EL 式を使用できませんでした。また、 を使用して値を見つけようとしましevent.getComponent().findComponent("id")たが、コンポーネントは存在しますが、値は null でした。ビーンは欠損値を修正すると思いますが、他に選択肢がまったくなくなるまで@ViewScopedビーンを維持しようと頑固に試みています。@RequestScoped最終的に、http://forum.primefaces.org/viewtopic.php?f=3&t=6432FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")から入手したものを使用する必要がありました

于 2014-03-31T13:54:17.353 に答える
0

タイプのエラー:

String foo = event.getComponent().getAttributes().get("foo");

代わりに、次のようにします。

Object foo = event.getComponent().getAttributes().get("foo");

Integer foo = (Integer) event.getComponent().getAttributes().get("foo");
于 2014-05-23T00:28:17.400 に答える