JSTL c:如果没有';t在JSF h:dataTable中工作
我试图使用JSTL c:如果没有';t在JSF h:dataTable中工作,jsf,datatable,jstl,conditional-rendering,Jsf,Datatable,Jstl,Conditional Rendering,我试图使用在状态完成时有条件地将放入中 但这不起作用,为什么会这样?我如何修复它?JSTL标记是在构建视图的过程中评估的,而不是在渲染视图的过程中评估的。您可以将其可视化如下:每当第一次创建视图树时,都会执行所有JSTL标记,结果是一个只包含JSF组件的视图。无论何时呈现视图树,都会执行所有JSF组件,结果是HTML。因此:JSF+JSTL并不像您从编码中期望的那样同步运行。JSTL首先从上到下运行,将结果交给JSF,然后轮到JSF再次从上到下运行。这可能会导致JSF迭代组件(如UIData
在状态完成时有条件地将
放入
中
但这不起作用,为什么会这样?我如何修复它?JSTL标记是在构建视图的过程中评估的,而不是在渲染视图的过程中评估的。您可以将其可视化如下:每当第一次创建视图树时,都会执行所有JSTL标记,结果是一个只包含JSF组件的视图。无论何时呈现视图树,都会执行所有JSF组件,结果是HTML。因此:JSF+JSTL并不像您从编码中期望的那样同步运行。JSTL首先从上到下运行,将结果交给JSF,然后轮到JSF再次从上到下运行。这可能会导致JSF迭代组件(如UIData)时出现意外结果,因为在JSTL运行时,行数据(在您的特定情况下是
#{item}
对象)不可用
简而言之:使用JSTL控制JSF组件树构建的流程。使用JSF控制HTML输出生成的流程
您希望在此处使用呈现的
属性
另见: