繁体   English   中英

一页上的JSF多个支持bean

[英]JSF multiple backing beans on one page

我做了一些阅读和演奏,我还有一些问题,我希望有人可以回答:

那么,我可以在一个JSF页面中使用两个或更多支持bean吗?

<h:intputText value="#{myFirstBean.firstProperty}" />
<h:intputText value="#{mySecondBean.secondProperty}" />

如果可以的话,我为什么不这样做? (我想我不应该,因为没有人这样做)

如果我不能,为什么?

此外,我在某处读到类似“在页面加载框架将实例化支持bean,并填充它,如果它是一个回发”。 他们说支持 bean,但我不明白的框架如何知道哪些支持bean实例。

让我们澄清一些术语:

  • 管理豆 ,你可以使用配置管理bean设施JavaBeans组件
  • 支持豆 ,都是在JavaServer Faces中的与特定页面中使用的UI组件相关的管理豆

所以,是的,您可以在单个JSF页面中使用两个或更多托管bean,但是将与一个页面相关的UI组件绑定,侦听器,逻辑等拆分为两个或更多支持bean仍然是可行的,但非常不受欢迎,可能会导致您很多问题和糟糕的代码。

为什么不? 这是完全合法的事情。 通常,页面应该与一个bean相关联(为了良好的结构),但是如果你想要在每个页面上显示当前时间,你可以自由地引用你的timeBean.currentTime等等(当然,这里最好使用include / templating)。

其他问题已经得到解答。 然而:

此外,我在某处读到类似“在页面加载框架将实例化支持bean,并填充它,如果它是一个回发”。 他们说支持bean但我无法理解框架如何知道实例化哪个支持bean。

豆类的名称已经解决了。 例如, #{myFirstBean.firstProperty}查找名为“myFirstBean”的bean(类MyFirstBean的实例)。 您可以调整名称,如下所示:

@ManagedBean(name = "foo")
public class SomeClass { ... }

然后你可以通过#{foo.firstProperty}引用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM