Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSF中检索所选行数据_Jsf_Jsf 2 - Fatal编程技术网

在JSF中检索所选行数据

在JSF中检索所选行数据,jsf,jsf-2,Jsf,Jsf 2,我有一个JSF页面,其中创建了一个html表,并使用ui:repeat显示行数据。我有一个保存按钮,当我选择某一行时,我希望保存整行数据。当我尝试选择特定行时,我无法获取行数据。ui:repeat没有绑定属性将其绑定到支持bean数据表 你能给我建议一下怎么做吗。提前感谢您可以通过将当前行作为参数传递到操作中来实现这一点,您必须使用jsf:ajax在selectBooleanCheckbox事件的onchange中调用该操作,确保将复选框连接到bean属性: <h:selectBoolea

我有一个JSF页面,其中创建了一个html表,并使用ui:repeat显示行数据。我有一个保存按钮,当我选择某一行时,我希望保存整行数据。当我尝试选择特定行时,我无法获取行数据。ui:repeat没有绑定属性将其绑定到支持bean数据表


你能给我建议一下怎么做吗。提前感谢

您可以通过将当前行作为参数传递到操作中来实现这一点,您必须使用
jsf:ajax

selectBooleanCheckbox
事件的
onchange
中调用该操作,确保将复选框连接到bean属性:

<h:selectBooleanCheckbox id="selection" value="#{listController.checked[item.id]}" />

在您的bean中,您需要:

private Map<Integer, Boolean> checked = new HashMap<Integer, Boolean>();

public Map<Integer, Boolean> getChecked() {
    return checked;
}
private Map checked=new HashMap();
公共地图getChecked(){
退货检查;
}
然后,如果您想知道选择了哪些项目,可以执行以下操作:

for (Map.Entry<Integer, Boolean> e : checked.entrySet()) {
    if (e.getValue()) {
        // do something with selected row
     }
 }
for(Map.Entry e:checked.entrySet()){
if(如getValue()){
//对所选行执行某些操作
}
}

用户如何选择行?单击它,或者您正在使用selectBooleanCheckbox或其他标记来进行相同的操作?嗨,Logan,谢谢您的回复。Im使用selectBooleanCheckbox标记选择数据表中的行。我还使用html表来创建datatable,因为根据我的要求,我需要在每一行中有一个子表。我可以通过html表格选项实现这一点。非常感谢您的回复。请告诉我如何在ajax调用中将当前行数据作为参数传递。实际上,我并没有将我的datatable与任何支持bean datatable绑定,因为我使用的是通用html表(这是因为根据我的要求,我需要创建嵌套的datatable,只有通过创建html表才能实现。非常感谢您在这方面的帮助。ThanksHow是生成表的吗?您是否对其进行了硬编码,或者使用JSTL或其他标记来迭代表中要显示的数据?我实际上使用它来迭代要将当前行值传递给函数,请使用ui:repeat的var属性,并将其作为函数中的参数传递。