【发布时间】:2015-12-20 13:07:15
【问题描述】:
我正在尝试使用 Primefaces 5.2 selectOneMenu 来显示图像及其文件名。这是我的 xhtml 目前的样子:
<h:form>
<h:panelGrid id="createPanelGrid" columns="2">
<p:outputLabel value="Service Logo:" />
<p:selectOneMenu value="#{imageBean.selectedImage}" var="l">
<f:selectItem itemLabel="Select a logo" itemValue="" />
<f:selectItems value="#{imageBean.imageList}" var="logo" itemLabel="#{logo}" itemValue="#{logo}" />
<p:column>
<p:graphicImage value="#{imageBean.imageFolder}/#{l}" style="max-width:50px;max-height:50px;" />
</p:column>
<p:column>#{l}</p:column>
</p:selectOneMenu>
</h:panelGrid>
ManagedBean (imageBean) 有
public List<String> getImageList () {
List<String> imageList = new ArrayList<String>();
File[] files = absoluteImageFolder.listFiles();
for (File file : files) {
imageList.add(file.getName());
}
return imageList;
}
和
private String selectedImage;
public String getSelectedImage() {
return selectedImage;
}
public void setSelectedImage(String selectedImage) {
this.selectedImage = selectedImage;
}
但是,图像并没有呈现在网页上,只是文件名(我会发布截图,但我没有足够的声誉)。我没有得到两列(首先是图像,然后是文件名),我只得到文件名本身。
当我将文件名字符串包装到 POJO 中并使用转换器时,它可以工作 - 但仅使用字符串就不行。
我怎样才能让它只使用字符串?
【问题讨论】:
-
日志中没有 404 - 当我在文件名字符串周围使用包装类时,相同的 URL 也可以工作。如果我在日志中找到了可以解释的线索,我就不会发布了。
-
对不起,我不是说日志中没有线索,只是我没有发现任何线索。你能给我一个提示我在找什么(除了404s,我检查过)?此外,让我感到困惑的是,在服务器端进行更改(添加包装类)使其工作。
-
不,所需的
元素不会出现在 HTML 输出中 - 它被省略了。相反,我只得到文本(文件名)。如果我使用包装类,我得到
标记没有问题。
标签: jsf jsf-2 primefaces selectonemenu