Ответ BalusC (как всегда :) правильный, но, как вы заметили, в selectOneMenu будет список URL-адресов. Именно поэтому я спросил вас, как вы храните свои изображения. Как я обычно это делаю: (и из того, что я знаю, это стандартный способ сделать это, надеюсь, кто-то исправит меня, если я ошибаюсь), вы сохраняете изображение где-то на сервере, а в своей БД вы сохраняете его местоположение. Вот почему я бы предложил создать класс MyImage (который будет сопоставлен с таблицей БД), в котором вы будете хранить имя изображения и способ получить его местоположение на сервере (например, вы можете сделать это с помощью пространств имен, таких как кошки). будет иметь String namespace = "cats"
и String imageName
и метод, который будет возвращать URL-адрес, например String getImageLocation() {return "<a href="http://something.com/images/" rel="nofollow noreferrer">http://something.com/images/</a>"+namespace+"/"+imageName;}
, помните, что важно, чтобы он выглядел как получатель, чтобы JSF мог его использовать). Тогда все, что вам нужно сделать, это получить список MyImages для данного пространства имен из вашей БД и отобразить изображения в dataTable, что-то вроде этого:
<h:dataTable value="#{myBeanWithAListOfImages.images}" var="img">
<h:column>
<h:graphicImage value="img.imageLocation"/>
</h:column>
</h:dataTable>
Где изображения List<MyImage>
. Это должно работать и печатать изображения в одном столбце.