【发布时间】:2015-08-14 14:27:07
【问题描述】:
我有一个带有动态表的屏幕,其中包含 inputtext feild 和 selectneMenu 旁边有一个 (+) 按钮,当用户按下该按钮时,表单应在其下方添加另一行
,我想在控制台(Eclipse)上打印用户将输入的数据,我想为(+)按钮添加一个验证,用户无法添加新行,直到用户在前一行的所有单元格中输入数据
我是 jsf 编程的新手。谁能告诉我一个基本的例子。
【问题讨论】:
标签: jsf-2
我有一个带有动态表的屏幕,其中包含 inputtext feild 和 selectneMenu 旁边有一个 (+) 按钮,当用户按下该按钮时,表单应在其下方添加另一行
,我想在控制台(Eclipse)上打印用户将输入的数据,我想为(+)按钮添加一个验证,用户无法添加新行,直到用户在前一行的所有单元格中输入数据
我是 jsf 编程的新手。谁能告诉我一个基本的例子。
【问题讨论】:
标签: jsf-2
您可以使用 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>
豆码:
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
【讨论】: