gpt4 book ai didi

jsf - 如何在没有模型的 Facelets 中通过简单的 for 循环重复输出文本?

转载 作者:行者123 更新时间:2023-12-03 10:49:21 26 4
gpt4 key购买 nike

如何使用 在 JSF 中重复输出某些内容只有标准标签(ui:、h: 等) ?换句话说 - 如何在 JSF 中等效于下面的 PHP 代码?我立刻想利用ui:repeat ,但它需要收集 - 我只有数字。

for ($i = 0; $i < 10; $i++) {
echo "<div>content</div>";
}

最佳答案

JSF 2.3+
如果您已经使用 JSF 2.3+,那么您可以使用 begin/end <ui:repeat> 的属性.

xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
...
<ui:repeat begin="1" end="10">
<div>content</div>
</ui:repeat>
JSF 2.2-
如果你还没有使用 JSF 2.3,那么要么使用 <c:forEach> 相反(确实,有时不赞成将 JSTL 与 JSF 混合使用,但这在您的特定情况下应该不会造成伤害,因为您似乎想“静态”创建 View ;它不依赖于任何动态变量):
xmlns:c="http://java.sun.com/jsp/jstl/core"
...
<c:forEach begin="1" end="10">
<div>content</div>
</c:forEach>
或者创建一个EL函数来为 <ui:repeat>创建一个虚拟数组:
package com.example.util;

public final class Functions {

private Functions() {
//
}

public static Object[] createArray(int size) {
return new Object[size];
}
}
注册于 /WEB-INF/util.taglib.xml :
<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
version="2.0">
<namespace>http://example.com/util/functions</namespace>
<function>
<function-name>createArray</function-name>
<function-class>com.example.util.Functions</function-class>
<function-signature>Object[] createArray(int)</function-signature>
</function>
</facelet-taglib>
并按如下方式使用
xmlns:util="http://example.com/util/functions"
...
<ui:repeat value="#{util:createArray(10)}">
<div>content</div>
</ui:repeat>

关于jsf - 如何在没有模型的 Facelets 中通过简单的 for 循环重复输出文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com