1

次のコードがあり、選択した行を取得したいと思います。

@ManagedBean
@SessionScoped
public class ElementTableData {

    private List<Element> elementList;
    private DataModel<Element> model;

    private HtmlDataTable htmlDataTable;
    private Element element;
    private List<Element> selectedElementList;
        ....
        public HtmlDataTable getHtmlDataTable(){
        return htmlDataTable;
    }

    public void setHtmlDataTable(HtmlDataTable aHtmlDataTable){
        htmlDataTable = aHtmlDataTable;
    }
        ....
    }

バインディングを作ろうとしているとき

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" type="text/css" href="css/styles.css" />
    <script type="text/javascript" src="js/global.js"></script>
</h:head>
<h:body>
    <f:loadBundle
        basename="messages"
        var="labels" />
    <h:form>
        <h:dataTable binding="elementTableData.htmlDataTable" styleClass="dataTable" rowClasses="rowOdd,rowEven"
            value="#{elementTableData.elementList}" var="element">
            <!-- Table Title -->
            <f:facet name="caption">#{labels.TableTitle}</f:facet>

次の例外が発生します。

javax.faces.FacesException: javax.el.PropertyNotWritableException: /index.xhtml at line 20 and column 52 binding="elementTableData.htmlDataTable": Illegal Syntax for Set Operation

htmlDataTableのゲッターとセッターがありますが、なぜ例外が発生するのかわかりません。

どうもありがとうございます!

4

1 に答える 1

1

バインディングをEL式として設定します。

<h:dataTable binding="#{elementTableData.htmlDataTable}" ...>
于 2012-07-05T20:41:07.313 に答える