【发布时间】:2016-04-19 11:47:54
【问题描述】:
【问题讨论】:
标签: jsf calendar richfaces date-format
【问题讨论】:
标签: jsf calendar richfaces date-format
不支持,如果要更改它,则需要覆盖创建元素的 JavaScript 方法,如下所示:
var calendar = #{rich:component('calendar')};
var fn = calendar.calendarContext.currentMonthControl;
calendar.calendarContext.currentMonthControl = function(context) {
var newDate = RichFaces.calendarUtils.formatDate(context.calendar.getCurrentDate(), "MMM, yyyy", context.monthLabels, context.monthLabelsShort);
var markup = fn(context);
markup.childs[0].value = newDate;
return markup;
}
当然,您必须确保在重新呈现日历时也会重新呈现此代码。
大部分日历代码是在客户端创建的。 (注意:这是内部的东西,你不应该知道它是如何工作的)。
calendar.calendarContext.currentMonthControl负责创建标签,它返回这个对象:
{
"tag":"div",
"attrs":{
/* event listeners, unimportant */
},
"childs":
[{"value":"April, 2016"}]
}
您所做的是将原始方法替换为修改此对象的新方法。 RichFaces.calendarUtils.formatDate 在原函数中以“MMMM, yyyy”模式调用,所以我们用不同的模式调用它,然后调用原函数,替换文本,返回修改后的对象。
【讨论】: