我创建了一个自定义ISO日期时间Converter:public class IsoDateTimeConverter implements Converter, StateHolder { private Class type; private String pattern; private boolean transientValue = false; public void setType(Class type) { this.type = type; } public void setPattern(String pattern) { this.pattern = pattern; } @Override public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException { if (StringCheck.isNullOrEmpty(value)) { throw new ConverterException("value not specified"); } try { if (IsoDate.class.equals(type)) { if (WebConst.ISO_DATE_NONE.equals(value)) { return IsoDate.DUMMY; } else { //TODO User spezifische TimeZone auslesen return new IsoDate(value, TimeZone.getDefault().getID()); } } else if (IsoTime.class.equals(type)) { if (WebConst.ISO_TIME_NONE.equals(value)) { return IsoTime.DUMMY; } else { //TODO User spezifische TimeZone auslesen return new IsoTime(value, TimeZone.getDefault().getID()); } } else if (IsoTimestamp.class.equals(type)) { if (WebConst.ISO_TIMESTAMP_NONE.equals(value)) { return IsoTimestamp.DUMMY; } else { //TODO User spezifische TimeZone auslesen return new IsoTimestamp(value, TimeZone.getDefault().getID()); } } else { throw new ConverterException("value not convertible"); } } catch (Exception e) { throw new ConverterException(e.getMessage()); } }问题是,当我第一次打开该视图时,所有属性仅在我的Converter类中设置一次,然后数据表根据初始属性渲染并转换值。我希望属性是按行设置的。我该如何实现?
2 回答

慕森王
TA贡献1777条经验 获得超3个赞
我使用f:convertNumber
(与您的f:*
模式匹配),动态属性currencyCode="#{rowVar.someCurrencyCode}"
by someCurrencyCode
是实体的属性,rowVar
来自p:dataTable var="rowVar"
。那么我必须在这里编写自己的转换器吗?我已经有了Primefaces 6.2,如果有帮助的话。否则Omnifaces的事情看起来很简单。
添加回答
举报
0/150
提交
取消