Jsf IntelliJ警告说;无法解析变量";在include的父页面中声明的EL变量上

Jsf IntelliJ警告说;无法解析变量";在include的父页面中声明的EL变量上,jsf,intellij-idea,el,facelets,uiinclude,Jsf,Intellij Idea,El,Facelets,Uiinclude,我创建了一个表列,它在自己的include文件中定义。此列由在某些数据表中使用的其他一些Facelets页面中使用。include列使用一个名为“linje”(是一个java类)的变量,该变量在包含该列的父页面中定义 即使代码可以工作,我也无法从IntelliJ中包含的文件导航到java类。有没有办法做到这一点?我还从IntellJ“无法解析变量”linje收到很多警告 使用列的代码 <rich:dataTable value="#{someMBean.someLinjeModel}"

我创建了一个表列,它在自己的include文件中定义。此列由
在某些数据表中使用的其他一些Facelets页面中使用。include列使用一个名为“linje”(是一个java类)的变量,该变量在包含该列的父页面中定义

即使代码可以工作,我也无法从IntelliJ中包含的文件导航到java类。有没有办法做到这一点?我还从IntellJ“无法解析变量”linje收到很多警告

使用列的代码

<rich:dataTable value="#{someMBean.someLinjeModel}"
                        reRender="ds-h" var="linje" id="vt"
                        rows="#{someBean.rows}" styleClass="standard"
                        rowClasses="odd,even">

            <ui:include src="someColumn.xhtml"></ui:include>

来自someColumn.xhtml的代码

<rich:column id="status" rendered="#{!linje.someRenderingCheck}">
        <f:facet name="header">
            <h:outputText value="Status"/>
        </f:facet>
        <h:outputText value="#{linje.someText}"/>
</rich:column>

您可以将变量
linje
作为
的参数传递

例如:

<ui:include src="someColumn.xhtml">
    <ui:param name="linje" value="#{linje}" />
</ui:include>

如果您使用
c:set
技巧,那么IDE不会再抱怨它不知道
linje
是什么,但是如果您尝试使用
linje
的属性,例如在表达式中使用
{linje.someText}
,它会抱怨
linje
没有属性
someText
(因为它不知道linje的类型是什么)。
<c:set var="linje" value="#{linje}" />