PrimeFacesのpickList
をカスタムコンバータで使用しています。カスタムコンバータで変換された値が表示されない
JSF:
public DualListModel<Cost> getCostsAsDualListModel() {
DualListModel<Cost> costsDualList;
List<Cost> costsSource = new ArrayList<Cost>();
List<Cost> costsTarget = new ArrayList<Cost>();
for (Cost c : costs) {
costsSource.add(c);
}
costsDualList = new DualListModel<Cost>(costsSource, costsTarget);
return costsDualList;
}
そして、私のカスタムコンバータは、次のようになります:
offerController.costsAsDualListModel
<p:pickList converter="costsConverter" value="#{offerController.costsAsDualListModel}" var="cost" itemLabel="#{cost}" itemValue="#{cost}" />
は、次のようになります
public String getAsString(FacesContext context, UIComponent component, Object object) {
if (object == null) {
return "";
}
Integer no = ((Cost) object).getNo();
String valueOf = String.valueOf(no);
return valueOf;
}
getAsString()
が呼び出され、valueOf
が正しいですが、内部の私のピックリスト私はまだオブジェクトを参照して、戻り値ではありませんgetAsString()
。
をpicklist
要素内で使用しようとしました。同じ問題。また、私はコンバータをfaces-config.xml
に登録しました:
<converter>
<converter-id>costsConverter</converter-id>
<converter-class>com.my.converter.CostsConverter</converter-class>
</converter>
何が問題なのですか?
を使用し、これらの2つのQ/Aで使用されています。これはjsfアプリケーション設定ファイル(faces-config.xml)または '@ FacesConverter'アノテーションの' 'の値です。 –
ラベルの場合、コンバータは不要です(使用さえしません)。そこに '#{cost.no}}を使ってください... – Kukeltje