primefaces的数据表在表单内部不可编辑

时间:2014-10-13 14:06:16

标签: primefaces datatable

Hy,

当我有一个带有paginator的primefaces的数据表并且它只是可读且不可编辑时,它不需要在表单内部,对吧?虽然我已经多次看到它了

由于

1 个答案:

答案 0 :(得分:0)

你理解正确。 JSF表单使用“post-back”技术将表单数据提交回包含表单的页面。如果您不想这样做,则表示您没有h:form

示例如下所示。

XHTML

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Setting Default selectOneMenu</title>
    </h:head>

    <h:body>
        <p:dataTable var="car" 
                     value="#{dtBasicView.cars}" 
                     rows="5"
                     paginator="true"
                     paginatorTemplate="{CurrentPageReport}  
                     {FirstPageLink} {PreviousPageLink} 
                     {PageLinks} 
                     {NextPageLink} 
                     {LastPageLink} 
                     {RowsPerPageDropdown}"
                     rowsPerPageTemplate="5,10,15">
            <p:column headerText="Id">
                <h:outputText value="#{car.id}" />
            </p:column>

            <p:column headerText="Year">
                <h:outputText value="#{car.year}" />
            </p:column>

            <p:column headerText="Brand">
                <h:outputText value="#{car.brand}" />
            </p:column>

            <p:column headerText="Color">
                <h:outputText value="#{car.color}" />
            </p:column>
        </p:dataTable>
    </h:body>

</html>

managedbean

@ManagedBean(name="dtBasicView")
@ViewScoped
public class BasicView implements Serializable {

    private List<Car> cars;

    @ManagedProperty("#{carService}")
    private CarService service;

    @PostConstruct
    public void init() {
        cars = service.createCars(10);
    }

    public List<Car> getCars() {
        return cars;
    }

    public void setService(CarService service) {
        this.service = service;
    }
}