<xp:validateExpression
message="İzinler pazar günü başlayamaz.">
<xp:this.expression><![CDATA[#{javascript:var DateConverter = {
dateToString: function( date:java.util.Date, pattern:String ){
try {
if( !date ){ return ''; }
var formatter = DateConverter.getFormatter( pattern );
return formatter.format( date );
} catch( e ){
// ErrorHandling
}
},
stringToDate: function( dateString:String, pattern:String ){
try {
if( !dateString ){ return null; }
var formatter = DateConverter.getFormatter( pattern );
return formatter.parse( dateString );
} catch( e ){
// ErrorHandling
}
},
getFormatter: function( pattern:String ){
try {
var cacheKey = 'dateFormatter' + pattern;
var dateFormatter = applicationScope[ cacheKey ];
if( !dateFormatter ){
dateFormatter = new java.text.SimpleDateFormat( pattern );
applicationScope[ cacheKey ] = dateFormatter;
}
return dateFormatter;
} catch( e ){
// ErrorHandling
}
}
};
vDate = DateConverter.stringToDate(getComponent("LeaveDate").getSubmittedValue(), 'dd.MM.yyyy' );
return (@Weekday(vDate) != 1);
}]]></xp:this.expression>
我试图添加验证来限制周日的选择。但是无论我选择哪个日期,表达式都返回True。
上面的代码片段是将字符串转换为日期,因为我读到getSubmittedValue()返回字符串而不管源字段类型如何。
return (@Weekday(getComponent("LeaveDate").getSubmittedValue()) != 1);
我的第一个代码就是这个,但我也无法使用它。
答案 0 :(得分:1)
值得一看Java Calendar class。要在其中加载日期,请使用:
java.util.Calendar.getInstance();
java.util.Calendar.setTime(date);
然后,您可以使用java.util.Calendar.get(java.util.Calendar.DAY_OF_WEEK)并针对静态字段java.util.Calendar.SUNDAY
进行检查。答案 1 :(得分:0)
在验证公式中,要验证的值可用value
。所以你的验证公式需要更简单:
@Weekday(value) !== 1;
这对你有用吗?