2012-02-11 6 views
0

アルバムに属する画像を削除しようとしています。 私は2つのドロップダウンを提供します。最初は、アルバムの画像を選択するために2番目のアルバムを選択することができます。最初の変更は2番目の設定になります。 次に、removeボタンはremoveメソッドを呼び出します。 私は何回もデバッグしましたが、値は常にnullです。 あなたはその理由を知っていますか?どうすればそれを動作させることができますか? 注:最初のドロップダウンを設定すると値が表示されますが、2番目のドロップを設定すると両方ともnullになります。Primefacesドロップダウン設定値でない

おかげ

<h:form> 
      <h:panelGrid> 


       <h:outputLabel value="#{diaryMB.selectedAlbum}"/> 


       <p:selectOneMenu 
        id="albums" value="#{diaryMB.selectedAlbum}" effect="drop"> 
        <f:selectItem itemLabel="Select An Album" itemValue="-1" /> 
        <f:selectItems value="#{diaryMB.albums}" var="album" 
            itemLabel="#{album}" itemValue="#{album}" /> 

    <p:ajax event="change" listener="#{diaryMB.updateImage()}" update="images"/> 

       </p:selectOneMenu> 


       <h:outputLabel value="#{diaryMB.selectedImage}" /> 


       <p:selectOneMenu 
         id="images" value="#{diaryMB.selectedImage}" effect="drop"> 
         <f:selectItem itemLabel="Select An Image" itemValue="-1" /> 
         <f:selectItems value="#{diaryMB.images}" var="image" 
             itemLabel="#{image}" itemValue="#{image}" /> 
       </p:selectOneMenu> 
       <p:commandButton id="removeImageButton" value="Remove" ajax="false" action="#{diaryMB.removeImage()}"/> 

      </h:panelGrid> 
     </h:form> 





public String removeImage(){ 
    System.out.println("I am selected image:"+selectedImage); 
    System.out.println("I am slected album "+selectedAlbum); 
    if(selectedImage!=null && !selectedImage.equals("-1")) 
    {diaryManager.removeImageFromAlbum(diaryOwner, selectedAlbum, selectedImage); 
    return "Friends";} 
    else 
     return "Home"; 
} 

答えて

0

あなたのマネージドBeanがRequestScopedであり、すべてのAjaxリクエストの後に再作成されているbeacuaseされる可能性があります。 ViewScopedまたはSessionScopedを試して、値が残っているかどうか確認してください。

関連する問題