答案 0 :(得分:0)
不支持,如果你想改变它,你需要覆盖创建元素的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”调用,因此我们用不同的模式调用它,然后调用原始函数,替换文本,并返回修改后的对象。