【问题标题】:Problem trying to do an "include" in JSF尝试在 JSF 中执行“包含”时出现问题
【发布时间】:2011-10-25 02:48:41
【问题描述】:

我正在尝试在我的所有页面中包含一大块静态 html。我尝试了下面的代码,但没有成功。我还尝试了其他一些方法,但无法使其正常工作。我正在阅读有关以某种方式使用 ui 标签的信息,但我也无法使其正常工作。我需要做什么才能将页面包含在 JSF 中。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">

<h:head>
...
</h:head>
<h:body>

    <jsp:include src="/common/includes/founcred1.html" />
...
</h:body>

【问题讨论】:

  • 1) 以何种方式不起作用? 2) 您使用哪种模板引擎(facelets 或 jsp)?
  • 它在发布的方式中不起作用,而且我尝试使用 &lt;%@ @&gt; 以 JSP 方式进行操作。至于模板引擎,我将如何检查?我必须修改现有项目,而且我是 JSF 新手。
  • @Roman:XML 样式已经暗示 OP 正在使用 Facelets。

标签: java jsf


【解决方案1】:

鉴于您的标记的 XML 语法,您似乎使用 Facelets (*.xhtml) 作为视图技术。 Facelets 是一种完全不同的视图技术,是 JSP 的继承者。您不应该在 Facelets 中使用 JSP 标记。暂时忘记 JSP。使用 Facelets 标签。它们将由 XML 名称页 xmlns:ui="http://java.sun.com/jsf/facelets" 声明。要在 Facelets 中包含页面片段,请使用 &lt;ui:include&gt; 标记。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    <h:head>
        ...
    </h:head>
    <h:body>
        <ui:include src="/common/includes/founcred1.xhtml" />
    </h:body>
</html>

您只需将founcred1.html 重命名为founcred1.xhtml 并将内容包装在&lt;ui:composition&gt; 中。

<ui:composition 
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <p>HTML here</p>
</ui:composition>

另见:

【讨论】:

    【解决方案2】:
    • 您尚未声明 jsp 命名空间。:xmlns:jsp="http://java.sun.com/JSP/Page"
    • 我已经包含这样的页面:&lt;jsp:directive.include file="xxx.jspx"/&gt;
    • 包含的页面也应该是有效的 xml 文件。

    【讨论】:

    • 当我这样做时,如果我在 firebug 中查看它会输出 &lt;jsp:directive.include file="/common/includes/foundcred1.html"/&gt; 而不是这个文件的内容。
    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2013-11-16
    • 2023-03-07
    相关资源
    最近更新 更多