Jsf 多次调用PrimeFaces dataTable方法

Jsf 多次调用PrimeFaces dataTable方法,jsf,primefaces,Jsf,Primefaces,我有一个带有列的datatable: <p:dataTable value="#{cc.attrs.bean.model}" ... <p:column style="width:#{bean.getWidth('colDate', 55)}px;" 似乎对表中的每一行都调用了bean.getWidth方法。因此,当有100行时,该方法被调用100次。我希望该方法只被调用一次 我错了吗?您可以将getWidth的结果保存在托管bean属性中,然后在列样式中使用它。不,它是正确

我有一个带有列的datatable:

<p:dataTable value="#{cc.attrs.bean.model}" 
...
  <p:column style="width:#{bean.getWidth('colDate', 55)}px;"
似乎对表中的每一行都调用了bean.getWidth方法。因此,当有100行时,该方法被调用100次。我希望该方法只被调用一次


我错了吗?

您可以将getWidth的结果保存在托管bean属性中,然后在列样式中使用它。

不,它是正确的。 您可以将值缓存到bean中或使用JSTL

<c:set var="width" value="#{bean.getWidth('colDate', 55)}" />

<p:dataTable value="#{cc.attrs.bean.model}" 
 ...
 <p:column style="width:#{width}px;"
你可以在这里找到更多信息。
不要忘记名称空间。

对于“宽度”来说,它是经常使用的。如果您记住它是针对一列的,但如果要使用它来设置单个列-行组合=单元格的样式,则必须为每行计算整个样式,并且必须为每行调用该样式。PrimeFaces不知道如何使用它,因此必须经常调用它。缓存的答案是去goHi的路,我刚刚试过:还有错误?例外