拥有以下xhtml代码:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Simple JSF</title>
</h:head>
<h:body>
<h:form>
<ui:repeat value="#{cart.items}" var="item">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="#{item}" />
</h:panelGrid>
</ui:repeat>
</h:form>
</h:body>
</html>
和豆:
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name = "cart")
@SessionScoped
public class CartBean {
private List<String> items;
public CartBean() {
items = new ArrayList<>();
items.add("shirt");
items.add("skirt");
items.add("trouser");
}
public List<String> getItems() {
return items;
}
}
在outputText中显示三个对应的项目:“ shirt”,“ skirt”和“裤子”。但是,更改xhtml的主体,如下所示:
<h:body>
<h:form>
<p:tabView >
<ui:repeat value="#{cart.items}" var="item">
<p:tab title="#{item}">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="#{item}" />
</h:panelGrid>
</p:tab>
</ui:repeat>
</p:tabView>
</h:form>
</h:body>
显示tabView仅显示一个选项卡(而不是三个),并且该选项卡中没有文本。我不明白为什么会丢失数据?
使用tabView所有者迭代器而不是ui:repeat解决,并将其添加到web.xml文件中:
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句