Jsp JSF重新渲染器是否禁用了表?

Jsp JSF重新渲染器是否禁用了表?,jsp,ajax4jsf,Jsp,Ajax4jsf,有人能解释一下JSF是否可以在点击复选框时重新提交一个禁用的数据表吗?您可以使用ajax侦听器来完成 您需要的是一个布尔值来知道表是否被禁用(请参阅托管bean中的布尔禁用) 接下来是一个方法,它将在每次调用该布尔值时更改它(请参见xhtml中的selectBooleanCheckbox和rendered=“#{tableController.disabled}”) 这可以应用于任何布尔值,如禁用/渲染等 源代码(xhtml): <html xmlns="http://www.w3.or

有人能解释一下JSF是否可以在点击复选框时重新提交一个禁用的数据表吗?

您可以使用ajax侦听器来完成

您需要的是一个布尔值来知道表是否被禁用(请参阅托管bean中的布尔禁用)

接下来是一个方法,它将在每次调用该布尔值时更改它(请参见xhtml中的
selectBooleanCheckbox
rendered=“#{tableController.disabled}”

这可以应用于任何布尔值,如禁用/渲染等


源代码(xhtml):

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html">
<h:head>
    <title>Facelet Title</title>
</h:head>
<h:body>

    <h:form>
        <h:dataTable id="table" value="#{tableController.products}" var="item" border="1" rendered="#{tableController.disabled}"
                     headerClass="table-header"
                     styleClass="table-d"
                     rowClasses="table-row">

            <h:column>
                <f:facet name="header">
                    ID
                </f:facet>
                <h:outputText value="#{item.id}"/>
            </h:column>

            <h:column>
                <f:facet name="header">
                    Name
                </f:facet>
                <h:outputText value="#{item.name}"/>
            </h:column>

            <h:column>
                <f:facet name="header">
                    Price
                </f:facet>
                <h:outputText value="#{item.price}"/>
            </h:column>

        </h:dataTable>


        <h:selectBooleanCheckbox value="Id">
            <f:ajax render="@form" listener="#{tableController.enableDisable()}"/>
        </h:selectBooleanCheckbox>
    </h:form>
</h:body>
</html>
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

@ManagedBean
@SessionScoped
public class TableController {

private boolean disabled;
private DataModel products;

public TableController() {

    List list = new ArrayList<Product>();

    Product p1 = new Product(1, "Z", 1.1);
    Product p2 = new Product(2, "F", 2.5);
    Product p3 = new Product(3, "A", 0.9);

    list.add(p1);
    list.add(p2);
    list.add(p3);

    products = new ListDataModel<Product>(list);
}


 public void enableDisable(){
        disabled = !disabled;  
}

public boolean isDisabled() {
    return disabled;
}

public void setDisabled(boolean disabled) {
    this.disabled = disabled;
}

public DataModel getProducts() {
    return products;
}

public void setProducts(DataModel products) {
    this.products = products;
}    
}
public class Product {

private int id;
private String name;
private double price;


public Product(int id, String name, double price){

    this.id = id;
    this.name = name;
    this.price = price;

}

public void setId(int id) {
    this.id = id;
}

public void setName(String name) {
    this.name = name;
}

public void setPrice(double price) {
    this.price = price;
}

public int getId() {
    return id;
}

public double getPrice() {
    return price;
}

public String getName() {
    return name;
}

}