java返回JSF页面上的图像列表
我有一个用户可以从中选择的项目下拉列表(视图是JSF)。我希望在用户从下拉列表中选择一个项目后,图像显示在同一个JSF页面上(即,用户从下拉列表中选择单词“Cat”,并显示一组不同的Cat图像)
我将如何在JSF中编写此代码
注意*我将JSF2.0用于facelets,而不是JSP
你可以在下面搜索框中键入要查询的问题!
我有一个用户可以从中选择的项目下拉列表(视图是JSF)。我希望在用户从下拉列表中选择一个项目后,图像显示在同一个JSF页面上(即,用户从下拉列表中选择单词“Cat”,并显示一组不同的Cat图像)
我将如何在JSF中编写此代码
注意*我将JSF2.0用于facelets,而不是JSP
# 1 楼答案
在下拉列表中提供带有图像URL的列表,并使用
h:graphicImage
在所选URL上显示图像。然后,使用f:ajax
在更改下拉列表时重新渲染图像以下是一个启动示例:
豆子:
# 2 楼答案
BalusC的回答是(一如既往:)正确的,但正如您所注意到的,selectOneMenu中会有一个URL列表。这正是我问你如何存储图像的原因。我通常的做法是:(据我所知,这是标准的做法,如果我错了,希望有人能纠正我)将图像存储在服务器上的某个位置,并存储在数据库中的某个位置。这就是为什么我建议创建一个MyImage类(它将映射到一个DB表),您可以在其中存储图像的名称以及获取其在服务器上的位置的方法(例如,您可以使用诸如CAT之类的名称空间来实现它,它将有一个
String namespace = "cats"
和一个String imageName
以及一个返回url的方法,如String getImageLocation() {return "http://something.com/images/"+namespace+"/"+imageName;}
记住,让它看起来像一个getter非常重要,这样JSF就可以使用它)。然后,您所要做的就是从数据库中获取给定名称空间的MyImages列表,并在dataTable中呈现这些图像,如下所示:其中图像是一个
List<MyImage>
。这样可以在一列中打印图像