在我的页面中,<ui:repeat>
不起作用。 <c:forEach>
是有效的。我不知道自己错过了什么?否则,<ui:repeat>
不能使用JSF 2.0吗?
mypage.xhtml(不起作用)
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
template="/common/commonLayout.xhtml">
<ui:define name="content">
<h:form id="toDeleteForm">
<table>
<tr>
<td>
<ui:repeat value="#{DatePick.timeSlot}" var="timeSlot">
<h:outputText value="#{timeSlot}" style="font-size:12px;"/><br/>
</ui:repeat>
</td>
</tr>
</table>
</h:form>
</ui:define>
</ui:composition>
mypage.xhtml(没关系)
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
template="/common/commonLayout.xhtml">
<ui:define name="content">
<h:form id="toDeleteForm">
<table>
<tr>
<td>
<c:forEach items="#{DatePick.timeSlot}" var="timeSlot">
<h:outputText value="#{timeSlot}" style="font-size:12px;"/>
</c:forEach>
</td>
</tr>
</table>
</h:form>
</ui:define>
</ui:composition>
DatePick.java
@Name("DatePick")
@Scope(ScopeType.CONVERSATION)
public class DatePick {
public List<String> getTimeSlot() {
// list form database
return timeSlot;
}
}
输出将在我的页面中显示如下。
01/01/2012
02/01/2012
03/01/2012
04/01/2012
05/01/2012
答案 0 :(得分:0)
我使用了Java EE 6注释,它在使用Mojarra 2.1.6的GlassFish 3.1.2.2上运行良好。我确实修改了你的代码,但现在是。
@Named
@ConversationScoped
public class DatePick implements Serializable {
private static final long serialVersionUID = -5061581851476260511L;
public DatePick() {
}
public List<String> getTimeSlot() {
List<String> dates = new ArrayList<String>() {
private static final long serialVersionUID = 3109256773218160485L;
{
add("01/1/2012");
add("02/1/2012");
add("03/1/2012");
add("04/1/2012");
add("05/1/2012");
add("06/1/2012");
add("07/1/2012");
add("08/1/2012");
add("09/1/2012");
add("10/1/2012");
add("11/1/2012");
add("12/1/2012");
}
};
return dates;
}
}
这是页面......
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./WEB-INF/templates/main.xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<ui:define name="content">
<table>
<tr>
<td>
<ui:repeat value="#{datePick.timeSlot}" var="timeSlot">
<h:outputText value="#{timeSlot}"/><br/>
</ui:repeat>
</td>
</tr>
</table>
</ui:define>
</ui:composition>
结果是预期的产出。 注意:我没有开始或结束对话。
在一些不同的版本中,2.1中修复了一些问题。您需要查看特定版本的发行说明并解决问题。
<强>更新强>
我在这里发布了完整的解决方案:stackoverflow-ui-repeat-example