Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
使用h:selectBooleanCheckbox和c:if获取a<;的行值;rich:datatable>;-JSF_Jsf - Fatal编程技术网

使用h:selectBooleanCheckbox和c:if获取a<;的行值;rich:datatable>;-JSF

使用h:selectBooleanCheckbox和c:if获取a<;的行值;rich:datatable>;-JSF,jsf,Jsf,在JSF渲染中,我使用来显示列表的内容是一个两步过程:视图构建时间和视图渲染时间。 虽然它们位于同一文件中,但有些标记在视图生成时生效,有些在渲染时生效 JSTL标记如,和所有标记处理程序(包括,请参阅)在视图构建时进行评估,它们将内容添加到“最终”xml树中,然后由JSF呈现 JSF HTML标记和派生(如)在视图呈现时进行评估,因此数据表的var在之后进行评估,这导致spotlightbinding在分配给uri时不被绑定 相反,我建议您指定一个ajax侦听器来调用该函数: <h:se

在JSF渲染中,我使用
来显示
列表的内容是一个两步过程:视图构建时间和视图渲染时间。
虽然它们位于同一文件中,但有些标记在视图生成时生效,有些在渲染时生效

JSTL标记如
和所有标记处理程序(包括
,请参阅)在视图构建时进行评估,它们将内容添加到“最终”xml树中,然后由JSF呈现

JSF HTML标记和派生(如
)在视图呈现时进行评估,因此数据表的
var
之后进行评估,这导致
spotlightbinding
在分配给
uri
时不被绑定

相反,我建议您指定一个ajax侦听器来调用该函数:

<h:selectBooleanCheckbox value="#{selectionBean.selected}">
    <f:ajax listener="#{inserirBean.onSelectedCheckBox(spotlightbinding['URI'])}" />
</h:selectBooleanCheckbox>


请注意,只要值发生更改,就会调用侦听器。

Solved!完美的这是一个巨大的帮助!非常感谢!:)
package managedBeans;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;

@ManagedBean
public class CheckBoxSelectionBean implements Serializable {
    private transient boolean selected = false;
    private static final long serialVersionUID = 1L;

    public CheckBoxSelectionBean() {
        // TODO Auto-generated constructor stub
    }

     public boolean isSelected() {
            return selected;
        }

        public void setSelected(boolean selected) {
            this.selected = selected;
        }

}
@ManagedBean
public class InsereDocumentoBean implements Serializable {

    private static final long serialVersionUID = 1L;

        private List<String> variableNamesPt = new ArrayList<String>();
        private List<Map<String, String>> spotlightPtBindings = new ArrayList<Map<String, String>>();


         public List<String> getVariableNamesPt() {
        return variableNamesPt;
    }

    public List<Map<String, String>> getSpotlightPtBindings() {
        return this.spotlightPtBindings;
    }

          public void onSelectedCheckBox(String uri) {
        System.out.println("URI: " + uri);
    }
}
<h:selectBooleanCheckbox value="#{selectionBean.selected}">
    <f:ajax listener="#{inserirBean.onSelectedCheckBox(spotlightbinding['URI'])}" />
</h:selectBooleanCheckbox>