jsf用嵌套的ui:repeat替换c:forEach会释放值-null
我有以下嵌套ui:repeat。 以前,外部循环使用的是一个c:forEach,它按预期工作 现在,我想将其用于omnifacesjsf用嵌套的ui:repeat替换c:forEach会释放值-null,jsf,Jsf,我有以下嵌套ui:repeat。 以前,外部循环使用的是一个c:forEach,它按预期工作 现在,我想将其用于omnifacesof:createIntegerArray(1,7)或将其用于omnifaces函数,但该函数不起作用 public static final int[] INTEGER_ARRAY = new int[]{1, 2, 3, 4, 5, 6, 7}; public List<String> getValues(int i); <ui:repeat
of:createIntegerArray(1,7)
或将其用于omnifaces
函数,但该函数不起作用
public static final int[] INTEGER_ARRAY = new int[]{1, 2, 3, 4, 5, 6, 7};
public List<String> getValues(int i);
<ui:repeat var="i" value="#{Bean.INTEGER_ARRAY}">
#{i}
<ui:repeat var="value" value="#{bean.getValues(i)}">
#{value}
</ui:repeat>
</ui:repeat>
publicstaticfinalint[]INTEGER_数组=新的int[]{1,2,3,4,5,6,7};
公共列表getValues(inti);
#{i}
#{value}
bean方法中的参数
i
始终为0或null,但在jsf视图中打印正确。bean方法被调用的次数太多,这是正常行为,请阅读并查看其中的链接。Mojarra版本是什么?无法在2.1.17中复制。事实上,getter方法调用非常便宜。因此,如果您只是返回属性,就没有什么可担心的了。它只是一个参数化的getter@LuiggiMendoza作为c:forEach
的标记处理程序也可以负责我试图避免的视图bean重新创建@出于测试目的,BalusC I今天更新为2.1.18,但仍然是一样的。@djmj和将是一样的,因为在幕后getter将被多次调用,知道这一点,您永远不应该在JSF和CDI托管bean的getter/setter方法中编写业务逻辑。没有业务逻辑。只是想尽可能多地删除标记处理程序。