作为一部分,我使用的是具有datePattern定值的组件,如下所示:
<rich:calendar id="effectiveDate"
value="#{itemBean.effectiveDate}"
datePattern="EEEE, MM/dd/yyyy" />
因此,当我加载表单时,来自请求的itemBean的现有effectiveDate正确显示在文本字段中。
问题:
单击日历图标时,文本字段的内容将消失。因此,如果我没有从日历弹出窗口中选择任何内容,则文本字段仍为空。
选择日期时,它会显示(例如):
EEEE,11/19/2012 因此,工作日不能正常显示。
注意到如果没有指定工作日(datePattern的EEEE部分),则不会出现上述任何问题。
选择后是否有某种特定方式显示工作日?
我在RichFaces 4.2.2上。
谢谢!
答案 0 :(得分:2)
我认为这是<rich:calendar>
的已知问题。我对此并不了解。
不过试试这个,
<rich:calendar id="effectiveDate" value="#{itemBean.effectiveDate}" onchanged="formatCalendarString(event, this);" datePattern="EEEE, MM/dd/yyyy" />
在<head></head>
个标签内放置此内容。
<head>
<script>
function formatCalendarString(event, cal) {
var date = new Date(Date.parse(event.rich.component.getSelectedDate()));
var weekdays=new Array(7);
weekdays[0]='Sunday';
weekdays[1]='Monday';
weekdays[2]='Tuesday';
weekdays[3]='Wednesday';
weekdays[4]='Thursday';
weekdays[5]='Friday';
weekdays[6]='Saturday';
var day = weekdays[date.getDay()];
if(typeof(day) !== 'undefined') {
var formattedDate = (day + ', ') + event.rich.component.getSelectedDateString().substring(6);
cal.value = formattedDate;
}
}
</script>
</head>