我想将 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