doctype 未在 JSF“主”模板中呈现

2023-12-26

正如主题所说,所需的文档类型未在我的 JSF 页面中呈现。我使用的版本:

  • Payara 服务器 Payara 服务器 4.1.2.181 #badassfish (build 220)]]
  • 莫贾拉 2.3.3 (20171008-2230 673408fa9199477d87f44521ff873d709128c88b)
  • PrimeFaces 6.2(“官方”版本)

我已经尝试过捆绑的(2.2.14/13/15?)版本,没有变化,所以我从github(官方发布)升级到2.3.3。

在我的整个项目中,我只有一个文档类型,它位于我的“主”模板中:

base.tpl:

<?xml version="1.0" encoding="UTF-8" ?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                xmlns:p="http://primefaces.org/ui"
                xmlns:pm="http://primefaces.org/mobile">

    <h:doctype rootElement="html" public="-//W3C//DTD XHTML 1.0 Transitional//EN" system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

    <html lang="#{localizationController.locale.language}" xml:lang="#{localizationController.locale.language}" xmlns="http://www.w3.org/1999/xhtml">
        <f:view locale="#{localizationController.locale}" contentType="text/html" />
        <h:head>
            <f:facet name="first">
                <ui:insert name="metadata" />

                <meta http-equiv="X-UA-Compatible" content="IE=edge" />
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
                <meta name="apple-mobile-web-app-capable" content="yes" />
            </f:facet>

            <f:loadBundle var="msg" basename="org.mxchange.localization.generic" />
            <f:loadBundle var="project" basename="org.mxchange.localization.project" />
            <f:loadBundle var="local" basename="org.mxchange.localization.local" />

            <h:outputStylesheet name="/css/custom.css" />

            <title>
                <h:outputText value="#{initParam['project_title']} - " />

                <ui:insert name="document_title">
                    <h:outputText value="Default document title" />
                </ui:insert>
            </title>
        </h:head>

        <h:body>
            <pm:page id="master">
                <h:panelGroup styleClass="ui-fluid" layout="block">
                    <pm:header>
                        <h:panelGroup layout="block">
                            <h:panelGroup styleClass="page-header" layout="block">
                                <h1>
                                    <h:outputText value="#{initParam['project_title']} - " />

                                    <ui:insert name="content_header">
                                        <h:outputText value="Default header title" />
                                    </ui:insert>
                                </h1>
                            </h:panelGroup>

                            <h:panelGroup styleClass="page-content-gap" layout="block">
                            </h:panelGroup>
                        </h:panelGroup>
                    </pm:header>

                    <h:panelGroup styleClass="ui-g" layout="block">
                        <h:panelGroup styleClass="ui-g-12 ui-md-2" layout="block">
                            <ui:insert name="menu">
                                <h:outputText value="Default menu" />
                            </ui:insert>

                            <ui:include src="/WEB-INF/templates/widgets/locale_change_widget.tpl" />
                        </h:panelGroup>

                        <h:panelGroup styleClass="ui-g-12 ui-md-10 ui-g-nopad" layout="block">
                            <h:panelGroup styleClass="ui-g-12 ui-g-nopad">
                                <ui:insert name="content">
                                    <h:outputText value="Default content" />
                                </ui:insert>
                            </h:panelGroup>
                        </h:panelGroup>

                        <h:panelGroup styleClass="ui-g-12 page-footer" layout="block">
                            <ui:insert name="footer">
                                <h:outputText value="Default footer" />
                            </ui:insert>
                        </h:panelGroup>
                    </h:panelGroup>

                    <h:panelGroup styleClass="error-container" layout="block">
                        <p:growl showDetail="true" sticky="true">
                            <p:autoUpdate />
                        </p:growl>

                        <p:ajaxExceptionHandler
                            type="javax.faces.application.ViewExpiredException"
                            update="exceptionDialog"
                            onexception="PF('exceptionDialog').show();"
                            />

                        <p:dialog id="exceptionDialog" closable="true" closeOnEscape="true" header="Exception '#{pfExceptionHandler.type}' occured!" widgetVar="exceptionDialog"
                                  height="500px">
                            <div class="para">
                                <h:outputText value="#{msg.EXCEPTION_MESSAGE}:" />
                                <h:outputText value="#{pfExceptionHandler.message}" />
                            </div>

                            <div class="para">
                                <h:outputText value="#{msg.EXCEPTION_STACK_TRACE}:" />
                                <h:outputText value="#{pfExceptionHandler.formattedStackTrace}" escape="false" />
                            </div>

                            <div class="para">
                                <p:button onclick="window.location.href = document.location.href;"
                                          value="#{msg.RELOAD_PAGE}"
                                          rendered="#{pfExceptionHandler.type == 'javax.faces.application.ViewExpiredException'}" />
                            </div>
                        </p:dialog>
                    </h:panelGroup>
                </h:panelGroup>
            </pm:page>
        </h:body>
    </html>
</ui:composition>

许多 JSF 页面如下所示:

some_guest_page.xhtml:

<?xml version="1.0" encoding="UTF-8" ?>
<ui:composition template="/WEB-INF/templates/guest/guest_base.tpl"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:f="http://xmlns.jcp.org/jsf/core">

    <ui:define name="guest_title">
        <h:outputText value="#{msg.PAGE_TITLE_INDEX_FOO}" />
    </ui:define>

    <ui:define name="content_header">
        <h:outputText value="#{msg.CONTENT_TITLE_INDEX_FOO}" />
    </ui:define>

    <ui:define name="content">
        <!-- @TODO Here goes your content. //-->
    </ui:define>
</ui:composition>

其中提到的guest_base.tpl是实际页面和我的“主”模板之间的一层:

guest_base.tpl:

<?xml version="1.0" encoding="UTF-8" ?>
<ui:composition
    template="/WEB-INF/templates/base.tpl"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html">

    <ui:define name="document_title">
        <ui:insert name="document_guest_title">
            <h:outputText value="Default guest title" />
        </ui:insert>
    </ui:define>

    <ui:define name="menu">
        <ui:fragment rendered="#{featureController.isFeatureEnabled('guest_menu')}">
            <ui:include src="/WEB-INF/templates/guest/guest_menu.tpl" />
        </ui:fragment>
    </ui:define>

    <ui:define name="footer">
        <ui:include src="/WEB-INF/templates/guest/guest_footer.tpl" />
    </ui:define>
</ui:composition>

热烈欢迎任何有关如何解决此问题的想法。 :-)

UPDATE: Fixed base.tpl轻微地。现在至少语言环境已再次正确加载。f:view似乎还至少涵盖了h:head, h:body and f:loadBundle这是有道理的:

  • f:view组件设置区域设置
  • f:loadBundle加载与设置的语言环境相关的消息包

但现在,最大的问题仍然是,不doctype,仍然存在。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

doctype 未在 JSF“主”模板中呈现 的相关文章

  • 来自 jsp:include 的 JSF 1.2 自定义组件

    在开始回答我的问题之前 我先说一下我的不幸的局限性 我使用的是 JSF 1 2 而不是 2 所以没有复合组件 我使用 JSP 代替 Facelets 进行渲染 所以这些复合组件也没有 我不允许使用任何第三方标签库 richFaces ice
  • 如何在 h:outputText 中写入单引号和双引号

    如何在 value 属性中写入单引号和双引号h outputText 这应该适用于标准语法 JSP 和 XML 视图技术
  • JSF 2.x @EJB 依赖注入错误

    因此 正如编程中通常发生的那样 我提出了一个问题 而一个潜在的解决方案又引发了更多问题 和错误 我刚开始使用 servlet JSF 和 EJB 并且遇到了依赖注入错误 这是我原来的问题 JSF h 标签不显示 https stackove
  • 设置开始日期后设置 primefaces 日历结束日期

    我正在使用 primefaces 日历来创建事件 使用 mindate 参数 我禁用了当天之前的日子 即使有结束日期 我也想这样做 禁用开始日期之前的日子 我不知道如何处理这个问题 因为支持 bean 仅在验证整个表单后才获取开始日期 我需
  • a4j:commandLink 重新渲染后停止工作

    我创建了这个测试用例来隔离我的问题 一旦轮询执行 ajax 更新 a4j commandLink 操作就不会执行 如果我们在轮询重新渲染之前关闭 modalPanel 则会执行它 有什么建议吗 提前致谢 测试 xhtml
  • 从 JavaScript 将参数传递给 p:remoteCommand

    我想将值传递给remoteCommand来自 JavaScript 如果这是可能的 我该如何做到这一点以及如何在支持 bean 中接收它们 对的 这是可能的 如何执行此操作取决于 PrimeFaces 版本 你可以在PrimeFaces 用
  • ExternalContext#dispatch() 不起作用

    我有服务器端倒计时计数器 当它 0时 方法应该执行ExternalContext dispatch 但它没有做到 方法ExternalContext redirect 在这个地方工作正常 else try FacesContext getC
  • jsf 2 primefaces openDialog 不起作用?

    我正在尝试使用 Primefaces 的对话框架 但我已经陷入了设置 http www primefaces org showcase ui dialogFrameworkBasic jsf http www primefaces org
  • 在 JSF 中格式化双精度型

    我有一个与这里发现的问题类似的问题 JSF selectItem 标签格式 https stackoverflow com questions 86531 jsf selectitem label formatting 我想要做的是接受 d
  • JSF ConvertDateTime 与数据表中的时区

    尝试输出数据表中的项目列表 如下所示
  • RichFaces动态TabPanel

    如何实现简单的添加 删除动态
  • 应返回带有 html 代码的字符串的支持 bean 属性返回空字符串

    我的支持 bean 中有一个返回 html 代码的属性 public String getHtmlPrevisualizar return Hello world 我想要做的是在 iframe 中显示这个 html 代码 我用 JavaSc
  • 使用 Javascript 将消息添加到 p:growl

    我想使用 Javascript 在客户端显示咆哮声 我的意思是这个 UI 组件 我找到了这个thread https stackoverflow com questions 5730054 how to display notificati
  • viewExpiredException JSF [重复]

    这个问题在这里已经有答案了 为了处理 JSF 中的 viewExpiredException 我编写了代码
  • JSF 和库的不明确性

    在花了一些时间使用 servlet 和 JSP 之后 现在我正在尝试了解一些有关 JSF 的知识 我已经学习了基础知识 做了几个简单的例子 对 工作流程 有了基本的了解 但我仍然无法理解 javax faces webapp FacesSe
  • h:message 为空时的默认输出

    我正在寻找一种在 JSF 中实现以下切换的方法 div if empty div
  • 将方法参数/参数传递给复合组件操作属性

    标题确实说明了一切 我尝试过 但失败并出现以下错误 Illegal attempt to pass arguments to a composite component lookup expression i e cc attrs iden
  • Pretty Faces:通用 URL 映射

    使用 Pretty Faces 3 我有一些像这样的映射
  • JSF中直接更改URL来限制用户访问页面

    我的应用程序中有两种用户 客户和卖家 我正在使用一个PhaseListener在JSF中防止用户在未登录的情况下访问页面 但在登录后我不知道如何防止用户更改地址栏中的URL并访问他也不允许的页面 例如 阻止客户访问卖家页面 有谁知道我如何防
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作

随机推荐