我需要在日历组件richfaces中设置开始日期。我的ManagedBean中有一个名为dateInitial
的变量,它有一个日期(即2013-07-07是下限日期),我配置了我的日历组件:
<rich:calendar id="dateToEvaluate" popup="true"
required="true" requiredMessage="Required Field"
buttonIcon="#{request.contextPath}/resources/images/calendar.gif"
value="#{valueMB.dateToEvaluate}"
datePattern="dd/MM/yyyy">
</rich:calendar>
但是我需要验证,它的值大于我的变量dateInitial
,否则..然后启动带有错误的消息验证器。
感谢您提前!我很抱歉我的英语不好。
答案 0 :(得分:0)
如果您想限制用户不要选择日期管理器而不是初始日期,则可以使用rich:calendar的dayDisableFunction
属性。
<rich:calendar isDayEnabled="disableBeforeInitialDay" …>
你可以使用像
这样的javascript函数function disableBeforeInitialDay(day) {
Date initialDay = new Date(2014,1,27); //equals to 27th Feb 2014
return (initialDay.getTime() - day.date.getTime() < 0);
}
上述代码会禁用早于初始日期的所有日期。
如果你想在服务器端执行,那么编写自己的验证器类
<rich:calendar .....>
<f:validator validatorId="myDateValidator" />
</rich:calendar>
@FacesValidator("myDateValidator")
public class MyDateValidator implements Validator {
@override
public void validate(FacesContext context, UIComponent comp, Object value) throws
ValidatorException {
Date date = (Date) value;
Date refDate = new Date(2014,1,27);
if (date.before(refDate )) {
String message = "Date is earlier than initial date.";
throw new ValidatorException(new FacesMessage(message));
}
}
}
如果您使用的是richfaces 4.X,则该属性应为dayDisableFunction
希望这有帮助