无法在弹出窗口中显示 p:selectone

Unable to display a p:selectone in a popup

我知道 primefaces 提供的 selectonelistbox http://www.primefaces.org/showcase/ui/input/listbox.xhtml

有没有办法让这个作为选择的弹出窗口?例如,在 JSF 视图上,如果我单击空白图像(全白图像),我如何获得选择列表框的弹出窗口,选择一个关闭弹出窗口并在父视图中设置值的值?

我需要为弹出窗口创建一个新视图吗?弹出视图 bean 的范围应该是什么?

在您的 xhtml 页面中:

<h:form>
    <p:graphicImage id="image" style="width:300px; height: 200px; background-color:white;" 
        url="#{yourBean.selectedImage}"  alt="No selection"
        onclick="PF('dlg').show();"/>

    <p:dialog header="Photo selection" widgetVar="dlg" resizable="false">
        <h:panelGrid columns="1" cellpadding="5">

        <p:selectOneListbox value="#{yourBean.selectedImage}">
            <f:selectItem itemLabel="Image 1" itemValue="http://oi44.tinypic.com/2mzdrvq.jpg" />
            <f:selectItem itemLabel="Image 2" itemValue="http://oi42.tinypic.com/2itk12a.jpg" />
        </p:selectOneListbox>           

            <f:facet name="footer">
                <p:commandButton value="Refresh" update="image" oncomplete="PF('dlg').hide()"/>
            </f:facet>  
        </h:panelGrid>  

    </p:dialog>
</h:form>

并且在您的支持 bean 中只需添加 selectedImage 属性 及其相应的 getter 和 setter 方法。

private String selectedImage;

public String getSelectedImage() {
    return selectedImage;
}

public void setSelectedImage(String selectedImage) {
    this.selectedImage = selectedImage;
}