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