Java JSTLC:在不在JSF页面中工作时选择c:

Java JSTLC:在不在JSF页面中工作时选择c:,java,jsf,jstl,Java,Jsf,Jstl,考虑以下jstl选择: 显示文本 AuthMsgBean=Bean rw=地图 “2”=键 问题: 当我简单地显示#{AuthMsgBean.rw['2']ne null}值时,它显示的很好(true),但一旦我尝试将该值解析为,When标记就会重新起作用,就好像测试总是false一样 如果我在测试中输入true(test=“true”),将显示显示文本 是不是在{AuthMsgBean.rw['2']ne null}表达式之前对标记求值 如果是这样的话,有解决办法吗?JSTL和JSF不

考虑以下jstl选择:


显示文本

AuthMsgBean=Bean

rw=地图

“2”=键


问题:

当我简单地显示
#{AuthMsgBean.rw['2']ne null}
值时,它显示的很好(true),但一旦我尝试将该值解析为
,When标记就会重新起作用,就好像测试总是false一样

如果我在测试中输入true(
test=“true”
),将显示显示文本

是不是在
{AuthMsgBean.rw['2']ne null}
表达式之前对
标记求值


如果是这样的话,有解决办法吗?

JSTL和JSF不会像您从编码中期望的那样同步运行。在JSF视图构建期间,JSTL首先从上到下运行,以生成仅包含JSF标记的视图。在JSF视图呈现期间,是JSF再次从上到下运行以生成一组HTML

显然,当轮到JSTL运行时,
#{AuthMsgBean}
不在作用域中。当标签放置在JSF迭代组件(如
)中时,可能会发生这种情况

无论如何,您不想在这里使用JSTL。使用JSF
呈现的属性


显示文本
另见:

我想使用标记(如file.tag)制作一个通用组件。dataTable也会有问题吗?不是Facelets标记或JSF(复合)组件,而是“普通”JSP标记。如果您使用的是Facelets,请检查以下内容:回答不错。就我个人而言,在某些情况下我喜欢这个组件:如果您编写
$
而不是
#
,它应该可以工作:
-(我有时会在项目中使用它)