当前位置: 首页 > 面试题库 >

JSF ui:include无法正确呈现

慎俊雄
2023-03-14
问题内容

我正在使用 JSF 2.1.8 实现Web应用程序,而 ui:include 标记存在问题。我有这个代码

<h:panelGroup id="panelContenido">

        <ui:fragment rendered="#{!empty navigationManagerSystem._Navegable}">
            <ui:include src="#{navigationManagerSystem._Navegable._IncludePath}" />

        </ui:fragment>
        <ui:fragment rendered="#{empty navigationManagerSystem._Navegable}">
            <ui:include src="/system/navigation/error.xhtml" />
        </ui:fragment>
    </h:panelGroup>

navigationManagerSystem
bean是JSF会话管理,在这一段代码首先呈现的,它应该是显示包括路径内容。如果我以这样的常量执行此操作,则包括这些工作,<ui:include /system/home/index.xhtml" />但是如果我将其放入变量中则不行,即使我已经看到变量在屏幕打印之前就保持了该值。我不知道它是否可以与包含/system/home/index.xhtml页面(即
View Scoped) 的bean相关。

无论如何,如果我在页面渲染后立即刷新页面,则正确包含了xthml。顺便说一句,我简化了要包含的页面,以使其没有任何jstl标记,因为我知道它们会导致View
Scope问题。

有什么想法吗?


问题答案:

关于问题的原因,<ui:include>在视图构建时间(还原视图阶段)中运行,而不是在您期望的视图渲染时间(渲染响应阶段)中运行。因此,如果包含路径在例如调用操作阶段甚至渲染响应阶段发生更改,那么除非将其完全重建,否则它将不会反映在视图中。

当前,最好的选择是使用多个静态<ui:include>标签,每个标签在视图渲染期间有条件地渲染。没错,这最终导致不必要的大组件树。对于此问题,仍然没有“圣杯”解决方案。可以清楚地理解问题,但是鉴于JSF
/
Facelets生命周期,解决方案很难。我也为OmniFaces进行了一些实验,但是最简单的尝试在MyFaces中失败了,而在Mojarra中(一定程度上)起作用了。



 类似资料:
  • 我正在尝试一个用户界面3.5,所有组件都工作正常,除了selectonemenu,它不能正确渲染。 它的文本字段在选择任何下拉字段时不显示。 我不能发布图片,因为我没有那么多的声誉 代码 屏幕拍摄 我怎样才能解决这个问题?

  • 问题内容: 由于某种原因,onPageFinished在WebView完成加载之前就触发了-我不知道为什么… 好的,看来这不是固定的。我认为加载页面时出现了竞争情况,但是无法获得可复制的行为。 我将网页的HTML内容存储在SQLite数据库中,以便离线查看。我使用以下命令将内容重新加载到WebView中: 似乎有时在加载WebView时,它会正确触发WebViewClient.onPageFini

  • 我正在使用OpenApi和Swagger构建一些文档,但由于js错误,我无法对其进行测试。 我想定义一个将接受特定值的参数,因此我在属性中添加了。我在请求中定义参数,如下所示 开发工具

  • 在jasper reports一节中,pdf问题中有一个jasper report字符编码。 jasper报告中无法解决该问题,因为它似乎是一个itext问题(使用itext v.5.5.4) 示例代码: 可在mm3下载字体。ttf公司 将错误渲染为: 它应该呈现为(在浏览器中使用相同的ttf) 只是出于好奇发生了什么事?(看起来像是某些字符,带虚线的圆圈应该向后移动,但这不会发生)。 这是<代码

  • 实际上,我在使用TableView的JavaFX应用程序中遇到了一个问题。我不知道为什么,但当我在运行时将数据加载到TableView时,JavaFX没有呈现某些行,如下图所示: 但是,当我调整列的大小时,会显示数据: 下面是使用的源代码: 我做错了什么?我已经将Java更新为最新版本(JDK 1.8.11)。 感谢大家! 由于调整列宽会触发JavaFX来显示数据,我使用了一种方法,在加载数据后更

  • Localhost很好,但上传到服务器时不工作 %pdf-1.3 1 0 obj<>Endobj2 0 obj<>Endobj3 0 obj<>>/Mediabox[0.000 0.000 595.280 841.890]>>Endobj4 0 obj<>stream x 2 300 p@&b m-l l,br b 5 jr k drr f b k endstream endobj 8 0 obj