Код ограничения, который я написал, чтобы указать, что отредактированная дата не входит в этот диапазон, затем отображает сообщение об ошибке перед страницей ошибок 500.
Project project = new Project();
public boolean validateStartDate1(MessageContext msgContext, Station station, Project project) {
boolean valid = true;
if (!station.getProjectDate().after(project.getEndDate())) {
msgContext.addMessage(new MessageBuilder().error().source("projectDate")
.code("station.invalidEndDate").build());
valid = false;
}
if (!station.getProjectDate().before(project.getStartDate())) {
msgContext.addMessage(new MessageBuilder().error().source("projectDate")
.code("station.invalidStartDate").build());
valid = false;
}
return valid;
}
И файл потока, в котором я вызываю функцию validateStartDate1 в файле xml.
<view-state id="stationform" view="/stationForm2.xhtml" model="station">
<transition on="save" validate="true" to="newStnMaintRpt">
<evaluate expression="stationFormFlowActions.saveStationEdit(station, messageContext)"/>
<evaluate expression="stationFormFlowActions.validateStartDate1(msgContext, station, project)"/>
</transition>
Сообщение об ошибке, которое я хочу, чтобы оно отображалось, когда они выбирают и пытаются сохранить изменения. В файле свойств.
station.invalidEndDate=Start date must be prior assigned project end date.
station.invalidStartDate=Start date must be after the assigned project start date.
Ошибка, которую я получаю на данный момент, когда я продолжаю сохранять с неправильной датой.