0
#{row}
がp:dataTable
で定義されているため、xhtmlの例が機能します。文脈がp:dataTable
でないgetData
を呼び出すと、null
が返されます。メソッドがnull
を返すこの状況については、Values.iterateOverDatatableValues
を参照してください。私の文脈ではrow
をどのように定義すればよいですか?場合によっては、数値を反復処理して#{row}
を定義する関数をいくつか用意していますか?一部の値のELコンテキストを展開します
ジャワ:
@Named
@SessionScoped
class Test {
public Object getData() {
return Faces.evaluateExpressionGet("#{row.someProperty}"); //The String "#{row.someProperty}" comes from a collection.
}
}
XHTML #{row}
がTest.getData()
で定義されている:
<p:dataTable value="#{bean.values}" var="row">
<p:column>
<h:outputText value="#{test.data}" />
</p:column>
</p:dataTable>
ジャワ、#{row}
が未定義である:。
class Values {
@Inject
Test test;
public void iterateOverDatatableValues(){
DataTable dt = Components.findComponent("datatableId");
for (Object o : dt.getValues()){
test.getData(); // <---- NULL because #{row} is not defined.
}
}
}
_「は、おそらく値を反復するデータテーブルいくつかの機能を持っている?」_それはそれはあなたが私が保存したいエキゾチックな方法 – Kukeltje
この種の中で物事を達成しようとしている...ショーケースに何をするかですいくつかの外部表の '#{row.data} 'のようなEL式。 – Tony
次の質問:なぜですか? – Kukeltje