[英]JSF selectBooleanCheckbox value in DataTable is allways false
當我單擊調用用於過濾選定項目的方法的按鈕時,即使選中了其復選框,每個選定項目的參數均為false。 就像selectBoolean復選框的值始終為false一樣。 我沒有意識到問題。 為什么不將值設置為true?
我有一個帶dataTable的JSF頁面:
<h:dataTable value="#{productManagedBean.showProducts()}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Select"/>
</f:facet>
<h:selectBooleanCheckbox value="#{item.selected}"></h:selectBooleanCheckbox>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Image"/>
</f:facet>
<div class="container-images-product-list">
<h:graphicImage value='#{item.product.image}' class="images-product-list" />
</div>
<h:form>
<h:commandButton value="Delete selected product/s" class="pure-button pure-button-primary" action="#{productManagedBean.filterCheckedItems()}"></h:commandButton>
</h:form>
dataTable中包含的項目類別:
public class ProductSelection {
private Product product;
private boolean selected;
public ProductSelection(Product product) {
this.product = product;
}
public ProductSelection(Product product, boolean selected) {
this.product = product;
this.selected = selected;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}
ManagedBean中的方法:
public List<ProductSelection> showProducts(){
if(itemsShown == false) {
list = productSessionBean.getAllProducts();
for(Product p: list){
selectionList.add(new ProductSelection(p));
}
itemsShown = true;
}
for (ProductSelection p: selectionList) {
p.getProduct().setImage("../uploaded/" + p.getProduct().getImage());
}
return selectionList;
}
public void filterCheckedItems(){
for (ProductSelection p: selectionList) {
if(p.isSelected()){
checkedList.add(p.getProduct());
}
}
}
請以相同的形式放置dataTable和commandButton,然后重試。 當前,您的復選框選擇似乎未提交,因為dataTable沒有嵌套在同一表格中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.