usr*_*ΛΩΝ 8 java jsf icefaces jspx
我只需要for
在JSF/ICEFaces中执行一个非常基本的循环,基本上是渲染列号
类似下面的伪代码
for(int i=0; i<max; i++)
{
<td>#{i}</td>
}
Run Code Online (Sandbox Code Playgroud)
在<c:forEach>
超过集合标记迭代,但我不想让我的支持bean更复杂返回整数的一个愚蠢的集合.
你知道更短更智能的方式吗?
谢谢
Jig*_*shi 11
<c:forEach var="i" begin="1" end="#{someBean.max}">
<td>#{i}</td>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
<ui:repeat>
标签是您真正应该使用的标签。JSTL标记在JSF生命周期之外运行。Cay Horstman拥有一门JSF课程,该课程讨论了以下事实:ui:repeat和处理可变长度数据。
下面有几个解决方案显示出一定的灵活性。您可以执行以下操作:
<ui:param name="max" value="5"/>
<ui:repeat var="i" value="#{indexBean.values}" size="#{max}" >
<tr><td>#{i}</td></tr>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
最大行数由<ui:parameter>
名为的aa确定max
。这不是必需的,但确实显示了灵活性。另外,您可以使用类似:
<ui:param name="max" value="5"/>
<ui:repeat var="i" value="#{indexBean.rowNumbers(max)}">
<tr><td>#{i}</td></tr>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
支持bean代码如下:
@ManagedBean
public class IndexBean {
public List<Integer> getValues() {
List<Integer> values = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
values.add(i);
}
return values;
}
public List<Integer> rowNumbers(final int max) {
List<Integer> values = new ArrayList<Integer>();
for (int i = 0; i < max; i++) {
values.add(i);
}
return values;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3755 次 |
最近记录: |