JSTL和JSF不会像您期望的那样同步运行。在JSF视图构建期间,它是JSTL,该JSTL从上到下首先运行以生成仅包含JSF标签的视图。在JSF视图渲染期间,正是JSF从上到下再次运行以生成一堆HTML。
显然,
#{AuthMsgBean}轮到JSTL运行时,它不在范围内。当将标签放置在JSF迭代组件(例如)中时,可能会发生这种情况<h:dataTable>。
无论如何,您不想在这里使用JSTL。利用JSF
rendered属性。
<h:panelGroup rendered="#{not empty AuthMsgBean.rw['2']}"> Display Text</h:panelGroup><h:outputText id="pan" value="Component pan could not be created." rendered="#{empty AuthMsgBean.rw['2']}" />


