jsf - 如何使用 ui :repeat? 显示单选按钮

标签 jsf facelets uirepeat selectoneradio

我在 JSF 页面上显示某些数据时遇到一些问题。 它涉及我编写的披萨 SQL 搜索程序。 java程序本身工作正常,但输出出现一些问题。

所有披萨都存储在实例的 ArrayList 中,例如 List。 PizzaObject 类包含其他实例,如“Pizza”、“Topping”、“Size”。所以它是保存变量数据的不同类的嵌套列表。

对于我的输出,我使用 ui:repeat 方法。显示披萨及其属性没有问题。但是,当将嵌套在 ui-repeat 循环中的尺寸显示为 SelectOneRadio 按钮时,没有输出。

所有披萨都存储在 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>

我不知道为什么单选框没有输出,但我认为我没有错误地实现它。

感谢您的帮助!

最佳答案

看看[<f:selectitems>][1] ,这是为了基于集合渲染多个组件。例如,您可以替换 <ui:repeat>

<f:selectItems value="#{results.sizeList}" var="size"
               itemLabel="#{size.diameter}" itemValue="#{size.sizeId}" />

关于jsf - 如何使用 ui :repeat? 显示单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25118094/

相关文章:

validation - 如何验证 Primefaces 数据表中的 List<Object> - JSF

java - 在 JSF 页面设置要访问 "local"的 "globally"变量

java - Facelet - img 标签

jsf - 使用JSF/Facelets处理带有后备bean问题的页面时出错

jsf - 使用 <c :set> inside Facelets <ui:repeat> tags 的 EL 变量

jsf - 如何为 h :dataTable/ui:repeat? 的每一行/项目设置转换器属性

java - Primefaces DataTable+LazyDataModel 不会在请求范围内传递 setPropertyActionListener

java - 无需 protected 资源的 JSF/Java EE 登录

css - 如何在 CSS 选择器中使用 JSF 生成的带有冒号 ":"的 HTML 元素 ID?

JSF h :selectBooleanCheckbox inside ui:repeat - varStatus. 索引有效,var 无效