将托管 Bean 设置为复合组件中的参数

发布于 2024-12-15 22:24:22 字数 707 浏览 3 评论 0原文

有没有一种方法可以在复合组件中设置托管 bean 参数,然后让使用类来决定使用哪个实际托管 bean?

类似以下内容: comp.xhtml

       <cc:interface>
            <cc:attribute name="price" />
            <cc:param name="pageBean" value="#{superBean}" />       
       <cc:interface>
       <cc:implementation>
                <h:outputText value="#{cc.attrs.price}"/>
       </cc:implementation>

然后,在使用页面中

   <ezcomp:comp pageBean="actualBean"
                          price="#{actualBean.price}" >

    </ezcomp:comp> 

,在我的例子中,ActualBean 是 SuperBean 的子类型。

我什至不确定这是否可能,但我们只能说,如果有人证明我错了,那就太好了。

先感谢您

Is there a way of setting a managed bean parameter in a composite component and then leaving the using classes to decide which actual managed bean to use?

something along the lines of: comp.xhtml

       <cc:interface>
            <cc:attribute name="price" />
            <cc:param name="pageBean" value="#{superBean}" />       
       <cc:interface>
       <cc:implementation>
                <h:outputText value="#{cc.attrs.price}"/>
       </cc:implementation>

And then, in the using page

   <ezcomp:comp pageBean="actualBean"
                          price="#{actualBean.price}" >

    </ezcomp:comp> 

In my case ActualBean is a subtype of SuperBean.

I'm not even sure this is possible, but let's just say it would be great if someone proved me wrong.

Thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

热风软妹 2024-12-22 22:24:22

基本上是为了删除重复的代码。我有很多属性需要在复合组件中设置。使用页面中唯一不同的是托管 bean 的名称,它们都是超级 bean 的子类型。

您不需要指定所有属性。只需单独指定 bean 就足够了。您可以直接在复合组件中引用其属性。

<cc:interface>
    <cc:attribute name="pageBean" type="com.example.SuperBean" required="true" />       
<cc:interface>
<cc:implementation>
    <h:outputText value="#{cc.attrs.pageBean.price}"/>
</cc:implementation>

<ezcomp:comp pageBean="#{actualBean}" />

To remove duplicate code, basically. i have a lot of attributes that need to be set in the composite component. The only thing that differs in the using pages is the name of the managed beans, all being subtypes of a superbean.

You don't need to specify all the attributes. Just specifying alone the bean is sufficient. You could reference its properties in the composite component directly.

<cc:interface>
    <cc:attribute name="pageBean" type="com.example.SuperBean" required="true" />       
<cc:interface>
<cc:implementation>
    <h:outputText value="#{cc.attrs.pageBean.price}"/>
</cc:implementation>

with

<ezcomp:comp pageBean="#{actualBean}" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文