【问题标题】:JSF UIData doesn't render a UIColumn childrenJSF UIData 不呈现 UIColumn 孩子
【发布时间】:2015-05-13 11:25:15
【问题描述】:

我尝试了解 JSF UIData () 如何在 JSF 中以编程方式工作。我有以下代码:

    UIInput input = new UIInput();
    UIInput input2 = new UIInput();

    UIOutput header = new UIOutput();
    header.setValue("Header");

    UIColumn column = new UIColumn();
    column.setHeader(header);
    column.getChildren().add(input);
    column.getChildren().add(input2);

    UIData table = new UIData();
    table.getChildren().add(column);

这段代码渲染 html 如下:

 <table>
   <thead>
     <tr>
       <th scope="col">Header</th>
     </tr>
   </thead>
   <tbody>
      <tr>
         <td></td>
     </tr>
   </tbody>
 </table>

我的两个输入在哪里?我希望是这样的:

  .....
   <tbody>
      <tr>
         <td>
            <input type="text" />
         </td>
     </tr>
      <tr>
         <td>
            <input type="text" />
         </td>
     </tr>
   </tbody>
   ......

【问题讨论】:

  • 我也尝试将 UIComponents (UIData,UIInput, UIColumn) 切换到 HtmlComponenets (HtmlDataTable, HtmlInputText, HtmlColumn) 但结果仍然相同。空行。
  • 在使用 XHTML (XML) 而不是 Java 声明/创建组件时,您会遇到完全相同的问题。 nothing 在声明/创建组件方面只有在 Java 中而不在 XHTML 中才有可能。 XHTML 的主要优点是代码可读性更强,更易于维护。只要我的 2 美分,如果你真的要继续朝这个方向发展,你可以三思而后行。

标签: jsf jsf-2 uicomponents


【解决方案1】:

我知道我做错了什么。我必须为表格行设置 UIData 集合。当我设置

    UIData table = new UIData();
    ArrayList list = new ArrayList();
    list.add("A");
    list.add("B");
    table.setValue(list);

比我的输入得到两行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2012-04-28
    • 2011-07-19
    • 2013-04-10
    相关资源
    最近更新 更多