如何在选定的XHTML与托管bean接口之间共享f:event of f:metadata作为参数(How share some f:event of f:metadata between selec

编程入门 行业动态 更新时间:2024-10-10 13:16:58
如何在选定的XHTML与托管bean接口之间共享f:event of f:metadata作为参数(How share some f:event of f:metadata between selected XHTML with managed bean interface as parameter)

注意到从JSF视图元数据揭秘 :

由于此标记与当前视图元数据有关,因此它不参与XHTML模板(页面作者必须确保元素不出现在模板或包含的页面上;它可以在模板客户端中)并且它是<f:view>直接子元素<f:view> 。

我有多个<f:viewParam>和<f:event>在许多XHTML页面中重复,而这些页面又是template.xhtml客户端。 每个f:event依赖于给定的托管bean,其中托管bean对于每个XHTML页面是不同的(但是尊重公共接口,即,对于每个相关的托管bean存在相同的侦听器操作):

<f:view> <f:metadata> <!-- I want to share this across many XHTML parametrised by the bean --> <f:viewParam name="id" value="#{particularBean.id}"/> <f:event type="preRenderView" listener="#{particularBean.opCommon1}"/> <f:event type="preRenderView" listener="#{particularBean.opCommon2}"/> <!-- END SHARED PORTION --> <f:event type="preRenderView" listener="#{particularBean.onlyForMe}"/> </f:metadata> </f:view> <ui:composition template="/template.xhtml">

问:如何封装共享的<f:viewParam>和<f:event>部分,以便它可以“包含”并作为公共策略片段处理,特定的托管bean(满足公共接口)为每个传入XHTML页面?

Noting that from JSF view metadata demystified:

Since this tag is about current view metadata it doesn't participate in XHTML templates (the page author must ensure that the element does not appear on a template or included page; it can be in a template client) and it is direct child of <f:view>.

I have multiple <f:viewParam> and <f:event> that repeat in many XHTML pages, which are in turn clients of a template.xhtml. Each f:event depends on a given managed bean, where the managed bean is different for each XHTML page (but respects a common interface, i.e., the same operations for the listeners exist for every relevant managed bean):

<f:view> <f:metadata> <!-- I want to share this across many XHTML parametrised by the bean --> <f:viewParam name="id" value="#{particularBean.id}"/> <f:event type="preRenderView" listener="#{particularBean.opCommon1}"/> <f:event type="preRenderView" listener="#{particularBean.opCommon2}"/> <!-- END SHARED PORTION --> <f:event type="preRenderView" listener="#{particularBean.onlyForMe}"/> </f:metadata> </f:view> <ui:composition template="/template.xhtml">

Q: How can I encapsulate the shared <f:viewParam> and <f:event> portion so that it can be "included" and treated as a common policy fragment, with particular managed beans (meeting the common interface) passed in for each XHTML page ?

最满意答案

我在我自己的一个旧项目中找到了答案(正如我发布的那样,我在几年前的某个阶段已经模糊地回忆过我已经调查过了)。 这有效:

在/include/shared.xhtml :

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" > <f:viewParam name="id" value="#{particularBean.id}"/> <f:event type="preRenderView" listener="#{compatibleBean.opCommon1}"/> <f:event type="preRenderView" listener="#{compatibleBean.opCommon2}"/> </ui:composition>

在任何客户:

<f:view> <f:metadata> <ui:include src="/included/shared.xhtml"> <ui:param name="compatibleBean" value="#{particularBean}"/> </ui:include> <f:event type="preRenderView" listener="#{particularBean.onlyForMe}"/> </f:metadata> </f:view>

I found the answer in one of my own older projects (as I posted I recalled vaguely I had investigated this already at some stage years ago). This works:

In /include/shared.xhtml:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" > <f:viewParam name="id" value="#{particularBean.id}"/> <f:event type="preRenderView" listener="#{compatibleBean.opCommon1}"/> <f:event type="preRenderView" listener="#{compatibleBean.opCommon2}"/> </ui:composition>

And in any client:

<f:view> <f:metadata> <ui:include src="/included/shared.xhtml"> <ui:param name="compatibleBean" value="#{particularBean}"/> </ui:include> <f:event type="preRenderView" listener="#{particularBean.onlyForMe}"/> </f:metadata> </f:view>

更多推荐

<f,XHTML,bean,页面,电脑培训,计算机培训,IT培训"/> <meta name="descripti

本文发布于:2023-08-07 01:03:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1459105.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:接口   参数   如何在   event   metadata

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!