p:selectOneMenu を p:columns のカスタム コンテンツで使用したいと思います ( http://www.primefaces.org/showcase-labs/ui/selectOneMenu.jsfに示すように) 。可能な値のドロップダウン リストに示されているものよりも少ない情報を持つドロップダウン フィールド。
たとえば、以下のコードは、選択後にbnkCodのみを表示する必要があります(例: '1')。
代わりに、bnkCodとbnkNamの連結が表示されます(例: '1 Bank 1')。
bnkCodとbnkNamはどちらも文字列であり、コンバーターは正しく動作します。
問題のトラブルシューティングを手伝ってくれる人はいますか?
JSF:
<p:selectOneMenu value="#{bean.bank}" converter="bankCodeConverter" var="p">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItems value="#{bean.banks}"
var="bank" itemLabel="#{bank.bnkCod}" itemValue="#{bank}"/>
<p:column>
#{p.bnkCod}
</p:column>
<p:column>
#{p.bnkNam}
</p:column>
</p:selectOneMenu>
豆:
List<Bank> banks = new ArrayList<Bank>();
banks.add(new Bank("1","Bank 1"));
banks.add(new Bank("2","Bank 2"));
コンバータ:
@FacesConverter(forClass=Bank.class,value="bankCodeConverter")
public class MeansOfPaymentConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
//... retrieve bean
return bean.getBanksMap().get(value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if(value instanceof Bank)
return ((Bank) value).getBnkCod();
else
return null;
}
}
PrimeFaces 3.4 を使用していますが、Safari 6.0 と Firfefox 18.0.1 の両方で問題が発生します。