У меня есть страница XHTML, в которой есть четыре текстовых поля
<h:column >
<f:facet name="header">
<h:outputText value="Start Date" />
</f:facet>
<h:inputText id="startDate" value="#{sampleVO.startDate}" />
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="End Date" />
</f:facet>
<h:inputText id="endDate" value="#{sampleVO.endDate}" />
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="Start Date" />
</f:facet>
<h:inputText id="startDate1" value="#{sampleVO.startDate}" />
</h:column>
<h:column >
<f:facet name="header">
<h:outputText value="End Date" />
</f:facet>
<h:inputText id="endDate1" value="#{sampleVO.endDate}" />
</h:column>
Мне нужно указать дату и дату окончания. Если пользователь вводит некоторую дату начала и окончания в id = "startDate" & id = "endDate", скажем, Дата начала: "01/01/2012" (1jan) и Дата окончания: 31.01.2012, и если пользователь вводит некоторые даты для id = "startDate1" и id = "endDate1" id = "startDate1" всегда должно быть больше, чем id = "endDate", т. е. диапазоны дат не должны перекрываться
public class SampleServiceimpl implements SampleService {
private List<SampleVO> listOfSample;
//this function gets called when clicked on Submit button on XHTML page
public Void submit() {
// how can i call datesOverLaps function to check entered
// start date and End date not overlapping, Also how to
// display the error message on XHTML page using FacingContext
}
public boolean datesOverlaps(List<SampleVO> sampleVO) {
final Date early = sampleVO.getStartDate();
final Date late = sampleVO.getEndDate();
for(SampleVO existing : sampleVO) {
if(!(early.isAfter(existing.getEnd())) ||
(late.isBefore(existing.getStart()))){
return true;
}
}
return false;
}
}
Не уверен, что вышеуказанная логическая функция актуальна и будет работать в сценарии.
Любая помощь будет оценена.