Hoặc sử dụng <c:forEach>
thay vì (true, trộn JSTL với JSF đôi khi được tán thành, nhưng điều này không nên làm hại trong trường hợp cụ thể của bạn bởi vì bạn dường như muốn tạo quan điểm "tĩnh", nó không phụ thuộc vào bất kỳ biến động):
xmlns:c="http://java.sun.com/jsp/jstl/core"
...
<c:forEach begin="1" end="10">
<div>content</div>
</c:forEach>
Hoặc tạo ra một chức năng EL để tạo ra một mảng giả cho <ui:repeat>
:
package com.example.util;
public final class Functions {
private Functions() {
//
}
public static Object[] createArray(int size) {
return new Object[size];
}
}
được đăng ký tại /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>
và đang được sử dụng như sau
xmlns:util="http://example.com/util/functions"
...
<ui:repeat value="#{util:createArray(10)}">
<div>content</div>
</ui:repeat>
Cập nhật: Tôi chỉ đăng một yêu cầu tăng cường thêm begin
và end
thuộc tính để <ui:repeat>
: http://java.net/jira/browse/JAVASERVERFACES-2240
Cập nhật 2: Tôi đã đích thân thực hiện nó cho JSF 2.3 theo https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1102 Kể từ cá móm 2.3-m06 bạn phải có khả năng sử dụng
<ui:repeat begin="1" end="10">
<div>content</div>
</ui:repeat>
Thật kỳ lạ, facelets không hỗ trợ điều này ... – jFrenetic
@jFrenetic: Tôi khá chắc chắn rằng điều này đã từng được báo cáo/yêu cầu trong cơ sở dữ liệu vấn đề JSF/Facelets, nhưng sau khi tìm kiếm nhiều hơn 15 phút, tôi không thể tìm thấy gì cả. – BalusC
@BalusC Bạn nghĩ gì về việc trộn JSTL vào ứng dụng web JSF? Tôi đã gặp những ý kiến rằng đây không phải là một cách tiếp cận tốt? – marioosh