Jsf 2 ui:包括src属性';s EL在复合组件中解析为null
我有如下复合组件:Jsf 2 ui:包括src属性';s EL在复合组件中解析为null,jsf-2,facelets,composite-component,Jsf 2,Facelets,Composite Component,我有如下复合组件: <?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"
<?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}
被解析为空。如果src
是硬编码的,则ui:include
可以正常工作
已尝试使用
h:outputText
检查{cc.attrs.path}
,并且路径显示正确,这意味着仅在ui:include
EL未解析的情况下。有什么帮助吗?这段代码在我的电脑上运行得很好。EL在任何情况下都已解决,但我认为include失败,因为您尝试包含的文件格式不正确或不存在
也许你可以告诉我们你想包含什么样的文件,然后给我们这个文件的一部分?它是一个常规的xhtml文件,包含大量标准和定制的jsf组件。事实上,硬编码路径工作正常,文件加载正确,所以我认为这不是文件的问题。我调试了facelet/jsf源代码,发现EL解析为null。这个复合组件是通过编程创建的。你说得对。您能告诉我们您是如何在页面中设置合成的吗?另一个问题:您是否正在使用嵌套复合结构(将复合结构转换为复合结构)?