在 selectManyListbox 中显示来自数据库的结果
Posted
技术标签:
【中文标题】在 selectManyListbox 中显示来自数据库的结果【英文标题】:showing result from database in selectManyListbox 【发布时间】:2013-01-05 21:52:34 【问题描述】:我正在创建一个 JSF 应用程序。 mysql 中列的数据类型为set(a,b,c)
。
每行都有一些选项,例如a,c
或a,b
等。我的应用中有一个列表框,其中包含a、b、c 作为可用项目,用户可以选择多个项目。
当我在 MySQL 中编辑条目时,我需要使用 DB 中的值填充列表框。我该怎么做?
【问题讨论】:
只是想知道,您真的在使用旧版 JSP 吗?不是 Facelets? 【参考方案1】:只需在 bean 的(post)构造函数中以通常的方式设置您绑定到其 value
属性的属性即可。
例如
<h:selectManyListbox value="#bean.selectedItems">
<f:selectItems value="#bean.availableItems" />
</h:selectManyListbox>
与
private List<String> selectedItems; // +getter+setter
private List<String> availableItems; // +getter
@PostConstruct
public void init()
selectedItems = getItFromDatabase(); // <--- Look here. Just preset it.
availableItems = Arrays.asList("a", "b", "c");
另见:
OurselectOneMenu
wiki page
【讨论】:
我需要重写init方法吗?我在 bean 中做东西,而 bean 是 POJO以上是关于在 selectManyListbox 中显示来自数据库的结果的主要内容,如果未能解决你的问题,请参考以下文章
<f:selectItems> 未在 <h:selectManyListbox> 中呈现
h:selectmanyListbox 使“选择”选项在至少选择一个选项时无法选择
让 JSF 将 selectManyListbox 值的选定项设置为 List 或 Collection 而不是数组