Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSTL c:如果没有';t在JSF h:dataTable中工作_Jsf_Datatable_Jstl_Conditional Rendering - Fatal编程技术网

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输出生成的流程

您希望在此处使用
呈现的
属性


另见: