【问题标题】:how to create UISelectItems from a Database如何从数据库创建 UISelectItems
【发布时间】:2012-08-06 07:07:16
【问题描述】:

我们需要使用数据库中的 SeletItem 填充 UISelectOne 和 UISelectMany 组件。我决定创建一个能够提供 SelectItems 的子组件元素,而不是子类化。这样我们就不必为此行为引入新的组件了。

但我看不出最好的方法是什么。起初我以为我只需要一个 TagHandler,但似乎这个想法是死路一条。我尝试在应用方法中创建 SelectItems,但我不知道如何将项目添加到组件中。

还有其他方法吗。我必须创建一个组件而不是 TagHandler 吗?

我可能走错了路:如上所述,我尝试将项目添加到组件中,但这不应该由组件树自动完成。

感谢任何帮助。

【问题讨论】:

  • 只是想知道,<f:selectItems> 与某些应用程序范围的 #{data} 托管 bean 的组合究竟如何不足?
  • 因为我们需要使用一些帮助方法在每个 bean 中提供代码。我们的想法是我们只提供一个从数据库到标签的逻辑键,然后自动添加。
  • 我看不到/理解为什么“在每个 bean 中”是必要的。 <f:selectItems value> 不一定需要引用与父 select 组件的 value 指向的相同托管 bean。

标签: database jsf-2 custom-component


【解决方案1】:

但我不知道如何将项目添加到组件中

只需将其添加为已作为apply() 的参数提供的父组件的子组件。

parent.getChildren().add(selectItems);

【讨论】:

  • 哇!对...我会尝试一下。我认为我的错误是我使用的是 SelectItem 类,而不是 UISelectItem。我仍然不知道真正的区别是什么。
  • SelectItem 是表示单个选择项(具有值和标签等)的模型对象。 UISelectItem 代表<f:selectItem> 自动生成的选项组件(UISelectItems 代表<f:selectItems> 自动生成的选项组件)。
猜你喜欢
  • 2010-09-08
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2010-10-16
  • 1970-01-01
  • 2011-03-25
相关资源
最近更新 更多