Drop down menu Primefaces下拉列表未设置值

Drop down menu Primefaces下拉列表未设置值,drop-down-menu,primefaces,Drop Down Menu,Primefaces,我正在尝试删除属于相册的图像。 我提供了两个下拉列表,第一个允许选择相册,第二个允许选择相册的图像。第一次更改设置第二次更改。 然后,remove按钮调用remove方法。 我已经调试了很多次了,但是值总是空的。 你知道为什么吗?我怎样才能让它工作? 注意:当我设置第一个下拉列表时,该值存在,但在我设置第二个下拉列表后,它们都变为空 谢谢 <h:form> <h:panelGrid> <h:outputL

我正在尝试删除属于相册的图像。 我提供了两个下拉列表,第一个允许选择相册,第二个允许选择相册的图像。第一次更改设置第二次更改。 然后,remove按钮调用remove方法。 我已经调试了很多次了,但是值总是空的。 你知道为什么吗?我怎样才能让它工作? 注意:当我设置第一个下拉列表时,该值存在,但在我设置第二个下拉列表后,它们都变为空

谢谢

 <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";
}

公共字符串removeImage(){
System.out.println(“我被选中图像:+selectedImage”);
System.out.println(“我是精选专辑”+精选专辑);
如果(selectedImage!=null&!selectedImage.equals(“-1”))
{diaryManager.removeImageFromAlbum(diaryOwner,selectedAlbum,selectedImage);
返回“朋友”;}
其他的
返回“家”;
}

这可能是因为您的托管bean是
RequestScoped
的,并且在每个ajax请求之后都会被重新创建。尝试使用
ViewScoped
SessionScoped
查看值是否保留