【发布时间】:2014-03-24 20:32:15
【问题描述】:
我有下一个 Java 模型 bean(它不仅包含以毫秒为单位的日期,还包含时区)
public class Device {
private Calendar lentDate;
// getters and setters
}
以及下一个 xhtml 页面片段
<rich:dataTable value="#{tagBean.devices}" var="device">
<rich:column>
<h:outputText value="#{device.lentDate.time}">
<f:convertDateTime pattern="dd.MM.yyyy" timeZone="#{device.lentDate.timeZone}"/>
</h:outputText>
</rich:column>
</rich:dataTable>
但是 timeZone 属性没有获得 device.lentDate.timeZone 值。看起来是因为当 f:convertDateTime 标签被渲染时,device 变量还不可用。
是否可以在设备变量可用后强制 JSF 呈现 f:convertDateTime 标记? 或者在这种情况下为每个设备正确设置 timeZone 的唯一方法是创建一个自定义日期/时间转换器?
谢谢。
【问题讨论】:
-
您可以使用参数device 在后备bean 中创建函数,该参数根据时区返回日期。并在
h:outputText中使用这个函数。 -
感谢您的解决方案!