我在 JSF 页面上显示一些数据时遇到了一些麻烦。它处理我编写的一个披萨 sql 搜索程序。java 程序本身工作正常,但输出产生了一些问题。
所有比萨都存储在实例的 ArrayList 中,例如 List<PizzaObject>。PizzaObject 类包含其他实例,例如“Pizza”、“Topping”、“Size”。所以它是一个包含可变数据的不同类的嵌套列表。
对于我的输出,我使用 ui:repeat 方法。显示披萨及其属性没有问题。但是,在将嵌套在 ui-repeat 循环中的尺寸显示为 SelectOneRadio-buttons 时,没有输出。
所有比萨饼都存储在一个 ArrayList 中,如下所示:
List<PizzaObject> results = new ArrayList<PizzaObject>();
PizzaObject 类如下所示:
public static class PizzaObject {
Pizza pizza;
List<Size> sizeList;
List<Topping> toppingList;
public PizzaObject(Pizza pizza, List<Size> sizeList, List<Topping> toppingList) {
this.pizza = pizza;
this.sizeList = sizeList;
this.toppingList = toppingList;
}
// getter and setter
}
Pizza、Topping 和 Size 类包含属于每个 Pizza 对象的不同属性。例如 Size 类如下所示:
public static class Size {
int sizeID;
int diameter;
public Size(int sizeID, int diameter) {
this.sizeID = sizeID;
this.diameter = diameter;
}
// getter and setter
}
在我的 JSF 输出页面中,我现在想要显示每个比萨饼及其大小和配料。但由于它们的大小不同,我需要迭代列表 sizeList,这就是发生错误的地方。
<ui:repeat var="results" value="#{pizzaSearchBean.results}">
<p>#{results.pizza.name}</p>
<p>sizes: </p>
<h:selectOneRadio id="pizzasize" value="#{pizzaSearchBean.pizzasize}">
<ui:repeat var="sizes" value="#{results.sizeList}">
<f:selectItem id="size" itemLabel="#{sizes.diameter}" itemValue="#{sizes.sizeID}"/>
</ui:repeat>
</h:selectOneRadio>
</ui:repeat>
我不知道为什么没有单选框的输出,但我认为我没有错误地实现它。
谢谢你的帮助!