Java 变量不能在绑定内使用
我有一个验证函数,返回失败的部分。比如说-Java 变量不能在绑定内使用,java,spring-boot,drools,Java,Spring Boot,Drools,我有一个验证函数,返回失败的部分。比如说- public class DateValidator{ public String validateDate(startDate, endDate){ try{ LocalDate.parse(startDate, formatter); LocalDate.parse(endDate, formatter); } catch(DateTimeParseExcept
public class DateValidator{
public String validateDate(startDate, endDate){
try{
LocalDate.parse(startDate, formatter);
LocalDate.parse(endDate, formatter);
} catch(DateTimeParseException e) {
return "INVALID_DATE_FORMAT";
}
if (startDate.isAfter(endDate)) {
return "INVALID_START_AND_END_DATES";
}
..... so on
}
}
我想在Drools中使用this进行验证
rule
"ValidateDate"
when
$error: Error();
$request: Request();
DateValidator( $dateValidation: validateDate($request.getStartDate(), $request.getEndDate()) != null);
then
$error.getBadRequest($dateValidation);
end;
我想使用变量的返回类型NOTNULL表示验证没有通过。但我得到下面的DRL文件例外-
text=Variables can not be used inside bindings.
Variable [$request] is being used in binding
'validateDate($request.getStartDate(), $request.getEndDate())']
尝试将函数调用作为来自条件元素的
的一部分执行:
rule
"ValidateDate"
when
$error: Error();
$request: Request(
$startDate: startDate,
$endDate: endDate
);
$dv: DateValidator()
$msg: String() from $dv.validateDate($startDate, $endDate)
then
$error.getBadRequest($msg);
end
希望有帮助