在 selectManyListbox 中显示来自数据库的结果

Posted

技术标签:

【中文标题】在 selectManyListbox 中显示来自数据库的结果【英文标题】:showing result from database in selectManyListbox 【发布时间】:2013-01-05 21:52:34 【问题描述】:

我正在创建一个 JSF 应用程序。 mysql 中列的数据类型为set(a,b,c)。 每行都有一些选项,例如a,ca,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");

另见:

Our selectOneMenu wiki page

【讨论】:

我需要重写init方法吗?我在 bean 中做东西,而 bean 是 POJO

以上是关于在 selectManyListbox 中显示来自数据库的结果的主要内容,如果未能解决你的问题,请参考以下文章

<f:selectItems> 未在 <h:selectManyListbox> 中呈现

提交后如何取消选择 h:selectManyListbox

h:selectmanyListbox 使“选择”选项在至少选择一个选项时无法选择

让 JSF 将 selectManyListbox 值的选定项设置为 List 或 Collection 而不是数组

JSF 2.0 和 selectManyListbox 中的生命周期问题

带有转换器的 JSF selectManyListBox 不起作用