【问题标题】:ui:include src attribute's EL is resolved to null in composite componentui:include src 属性的 EL 在复合组件中被解析为 null
【发布时间】:2012-02-02 07:28:06
【问题描述】:

我有如下复合组件:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:f="http://java.sun.com/jsf/core" 
      xmlns:cc="http://java.sun.com/jsf/composite" 
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core">
    <cc:interface>
        <cc:attribute name="path" shortDescription="Page Title" type="String"/>
    </cc:interface>
    <cc:implementation>
            <ui:include src="#{cc.attrs.path}"/>
    </cc:implementation>
</html>

上面代码的问题是#{cc.attrs.path}被解析为null。如果src 是硬编码的,那么ui:include 可以正常工作。

尝试检查#{cc.attrs.path}h:outputText 并且路径显示正确,这意味着仅在ui:include EL 未解析的情况下。有什么帮助吗?

【问题讨论】:

    标签: jsf-2 facelets composite-component


    【解决方案1】:

    此代码在我的计算机上运行良好。 EL 在任何情况下都已解决,但我认为包含失败是因为您尝试包含的文件格式错误或不存在。

    也许您可以告诉我们您尝试包含哪种文件,然后给我们这个文件的一部分?

    【讨论】:

    • 它是一个常规的 xhtml 文件,包含一堆标准和自定义的 jsf 组件。硬编码路径有效并且文件正确加载的事实,所以我认为这不是文件的问题。我将代码调试到 facelet/jsf 源代码,并注意到 EL 被解析为 null。这个复合组件是以编程方式创建的。
    • 你是对的。你能告诉我们你是如何在你的页面中设置你的合成的吗?另一个问题:您是否使用嵌套复合材料(复合成复合材料)?
    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2016-06-12
    • 2012-09-24
    相关资源
    最近更新 更多