2011-08-02 1 views
3

私はこの例を試していますin PrimeFaces。私はコードの最初の数行だけを理解しています。PrimeFaces DataTable - フィルタリング(例を実行している問題)

<p:dataTable var="car" value="#{tableBean.carsSmall}" 
    emptyMessage="No cars found with given criteria"> 

    <f:facet name="header"> 
     <p:outputPanel> 
      <h:outputText value="Search all fields:" /> 
      <p:inputText id="globalFilter" onkeyup="carsTable.filter()" style="width:150px" /> 
     </p:outputPanel> 
    </f:facet> 

ここに検索ボックスを表示することができます。リーミングコードの行は、列を追加し、列にデータを移入することです。私は何を理解していません

<p:column filterBy="#{car.model}" 
    headerText="Model" footerText="contains" 
    filterMatchMode="contains"> 
    <h:outputText value="#{car.model}" /> 
</p:column>` 

#{car.model}とは何ですか? javaクラスにはmodelと何も指定されていません。列を表示するためにJavaクラスを変更するにはどうすればよいですか?

答えて

4

式変数carは、dataTableのvar属性であると宣言されています。つまり、変数carによって、dataTableコンポーネントの各一意の行を式言語で参照できます。

carmodelプロパティは、シリアライズ可能POJO車のBeanプロパティです。 CarクラスはゲッターgetModel()とセッターsetModel()を意味するプロパティmodelを持っているものとします。

<p:column>filterByアトリビュートは、このカラムヘッダーに独自のフィルタテキストフィールドがあり、car.modelプロパティのローをフィルタリングすることを指定しています。

アトリビュートfilterMatchModeは、一致条件がcontainsであることを指定します。これは、列フィルタフィールドに入力されたテキストの任意の出現が、一致するレコードと同じであることを意味します。 filterMatchModeオプションの完全なリストについては、Primefaces Guideを参照してください。

+0

'filterBy'について説明します。何とかそれをスキップしました。 – Jacob

+0

まあ、私は同じ事例をすることができたし、ウェブサイトに示されているようにフィルタリングしない。私は文字 '1'を入力すると、私はまったく異なるフィルタ結果を得る。誰もがこの問題に遭遇していますか?また、この例外が発生しました。原因:java.lang.InstantiationException:mk.war.Car' – Illep

+0

これは、グローバルフィルタまたはこの問題が発生している列フィルタにありますか?あなたの質問を編集し、mk.war.Carクラスを追加できますか? –

2
private List<Car> carsSmall; 

carsSmallは、Carオブジェクトを含むリストです。 Carはここにインポートされます:

import org.primefaces.examples.domain.Car; 

Car.java Source

車は、それがStringとして車のモデルが含まれている属性modelを持って、バッキングBeanです。リストcarsSmall内のすべての要素の上に

<p:dataTable var="car"...> 

のdataTable繰り返し処理を、あなたは(ここでは:carvar属性で指定された名前を使用して、現在の要素にアクセスすることができます:車#{car.model}

は、ここで定義されます。したがって、#{car.model}は、現在のCarオブジェクトのgetModel()メソッドを呼び出します。

+0

まあ、私は同じ例を行うことができたし、それはウェブサイトに示されているようにフィルタリングしない。私は文字 '1'を入力すると、私はまったく異なるフィルタ結果を得る。誰もがこの問題に遭遇していますか?また例外が発生します:java.lang.InstantiationException:mk.war.Car – Illep

+2

@Illep Primefacesは、Bean内のcar変数をランダム化します。だから、色はあなたとそのような、モデル、何年もすべて無作為化されるでしょう。つまり、すべてを書き留めて同じ車を追加しない限り、プライムフェイスと同じ結果を得ることはありません。 – Lyrion

+0

まあ、私は同じクラスをコピーし、コードをまったく変更しませんでした。私は値がランダムに生成されることを断言します。しかし、私は '年の列'で '19'を入力した場合、 '19'で始まるすべての '年'を除外しません。それは私が見つける必要があるものです – Illep

関連する問題