从JSF中的动态表打印数据

时间:2015-06-01 07:48:52

标签: jsf-2

我有一个动态表格的屏幕,其中包含inputtext feild和selectneMenu,旁边有一个(+)按钮,当用户按下该按钮时,表单应在其下方添加另一行 ,我想在控制台(Eclipse)上打印用户将要输入的数据,我想为(+)按钮添加验证,用户无法添加新行,直到用户在上一行的所有单元格中输入数据为止  我是jsf编程的新手。有人告诉我一个基本的例子。

1 个答案:

答案 0 :(得分:0)

您可以使用f:setPropertyActionListener和h:commandButton来获取辅助bean中当前行的值。在Backing bean中,您可以应用验证来检查inputtext和selectOneMenu的值。如果值非空,则可以将新对象(行)添加到列表中,如下所示:

JSF代码:

<h:datatable id="dt" var="element" value="#{bean.list}">
<h:column>
<h:inputText value="#{element.inputVal}" > </h:inputText>
</h:column>
<h:column>
<h:selectOneMenu value="" > </h:selectOneMenu>
</h:column>
<h:column>
     <h:commandButton value="Plus Button" action="#{bean.addRow}">
                    <f:setPropertyActionListener value="#{element}" target="#{bean.selectedRow}" />
    </h:commandButton> 
</h:column>
</h:datatable>

Bean代码:

   public void addRow()
        {
           if(validateEmptyRow(selectedRow)
           {
            A a = new A();
            list.add(a);
           }
          else
          {
           //Print Validation Message
          }
        }

    public boolean validateEmptyRow(A selectedRow){

        boolean flag = true;
        if(null == selectRow.getInputVal()){
          flag = false;
        }
        //similary validate null value for selectOneMenu and return boolean value false if any of the two is having null or empty value
        return flag; 
    }

//define getter setter for selectedRow, list etc