【问题标题】:Embed JSF code in a xhtml在 xhtml 中嵌入 JSF 代码
【发布时间】:2015-06-03 12:15:15
【问题描述】:

我需要使用托管 bean 中的一些 JSF 代码(使用 p:panel 和 p:datatables 等)来完成一个 xhtml 页面,但我不确定这是否可行。 我的尝试:

<h:outputText escape="true" value="#{controller.jsfString}"/>

无法理解“p:”组件,只能理解简单的html。

<ui:include src="#{controller.jsfString}">

它需要一个 xhtml 路径,而不是字符串。

我不知道还有什么尝试...这可能吗?

【问题讨论】:

  • 我感觉您正在尝试重新发明轮子,并且您实际上正在寻找可以重复使用的自定义/复合组件。 mkyong.com/jsf2/composite-components-in-jsf-2-0
  • mykong 的阅读非常有趣(谢谢@Gimby),但不幸的是这不是我想要的。我只需要使用一些 jsf 代码在我的控制器中构建一个字符串,然后将此 jsf 代码放在我的页面中的其余 jsf 代码中......我更喜欢使用发明的轮子,承诺!
  • 那么,zim 对“不”的回答得到了我的支持。您能否至少提供上下文为什么您必须以非 JSF 方式进行操作?您是从数据库中获取页面内容还是什么?
  • 根据具体的功能需求肯定有办法。例如,JSF 能够从任何资源解析 Facelets 模板,例如 @Gimby 所暗示的数据库。 You'd better elaborate the concrete functional requirement in detail rather than asking how to achieve a completely wrong solution to that requirement。这种尝试是基于一个基本的思维错误。

标签: jsf primefaces


【解决方案1】:

无法理解“p:”组件,只能理解简单的html。

当然不是! h:outputText 值是在视图渲染时评估的,因此如果您渲染 JSF 标记,它们将不会在渲染完成后再次评估。

原则上,可以使用 JSTL &lt;c:out&gt; 以这种方式添加 JSF 标记,但它在 JSF facelets 中不可用。 不管怎样,告诉自己它可以防止你做出糟糕的设计。

为了帮助您,我们需要更多关于控制器应该输出什么的信息。

【讨论】:

  • 只知道你帮助我不够多。 @Gimby我想从控制器获取jsf代码,因为我必须实现的逻辑的复杂性太多(来自数据库实体的混合数据表等等),但我会尝试。谢谢大家!
【解决方案2】:

这里 p 表示素面,你需要在 pom 中包含素面依赖并在 XHTML 中为素面启用标签库,然后你可以使用所有素面组件。

【讨论】:

  • 我在我的页面中使用了 primefaces 组件,所以我的 jsfString 也有 primefaces 组件,但是 jsfString 中的 primefaces 组件没有被解释。
猜你喜欢
  • 1970-01-01
  • 2015-12-14
  • 2011-07-15
  • 2012-09-02
  • 1970-01-01
  • 2016-06-08
  • 2011-10-28
  • 1970-01-01
  • 2014-05-22
相关资源
最近更新 更多