jsf - 在 JSF 2.0 中创建托管 bean 的多个实例的正确方法是什么

标签 jsf jsf-2 facelets

如果我想在 JSF 2.0 中创建多个托管 bean 实例,在同一范围内使用不同的名称,我应该如何进行?理想情况下,我希望等效项(例如):

@ManagedBeans({name="myManagedBean1",name="myManagedBean2"})
@RequestScoped
public class MyManagedBean {

}

谢谢 ..

最佳答案

你不能。从技术上讲,它也没有多大意义。您可能正在为特定的功能需求寻找错误方向的解决方案。

最好的办法是拥有一个父 bean 并将那些“多个 bean”作为子代。

@ManagedBean
@RequestScoped
public class Parent {
    private Child child1;
    private Child child2;
    // ...
}

以便您可以通过 #{parent.child1} 访问它和 #{parent.child2} .您当然也可以使用 List<Child>属性(property)甚至Map<String, Child>而是更加灵活。

faces-config.xml但是,可以使用不同的名称定义多个 bean 类。尽管如此,我还是不明白这有什么用。

关于jsf - 在 JSF 2.0 中创建托管 bean 的多个实例的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710075/

相关文章:

jsf - 如何通过其接口(interface)定义复合内部中继器的内容?

validation - 如果值已更改,如何 checkin 验证器?

jsf - 标题中带有垂直文本的数据表

CSS 不适用于浏览器,但它适用于 Eclipse

jsf - ui :fragment and s:fragment? 之间有什么区别吗

JSF - 使用 EL 浏览和打印 ArrayList<String[]> 中的值

java - 多个文件上传 - JSF

java - 使用ajax时如何识别Java Server Faces 2.0复合组件?

jsf-2 - 无法在 EL/Facelet 中找到具有默认名称的 @Named CDI bean

jsf-2 - 提交 2 个表单时 JSF ViewState 未更新