4
나는 네 개의 텍스트 상자 크로스 필드 유효성 검사 : 데이터 테이블
<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>
내가 시작 날짜 및 종료 날짜에 검증을 둘 필요가있는 XHTML 페이지가 있습니다. 사용자가 id = "startDate"에서 시작 및 종료 날짜를 입력하는 경우 & id = "endDate"는 시작 날짜를 "01/01/2012"(1jan) 및 종료 날짜 : 01/31/2012라고 말하고 사용자가 일부 날짜를 입력하면 위의 부울 함수가 현재하고있는 경우 ID = "startDate1"와 ID를 = "endDate1"ID = "startDate1는"항상 최신의 범위가
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;
}
}
확실하지 중복되면 안 즉, ID = "endDate가"THN 커야합니다 시나리오에서 작동합니다. 도움이 될 것입니다.
크로스 필드 유효성 검사 (IMO JSF가 제대로하지 못했음)를보고 싶을 수도 있습니다. - http://stackoverflow.com/questions/6282466/jsf2-0-doesnt-support-cross-field-validation-is - 해결 방법 또는 JEE6 일 경우 Bean Validation을 살펴보십시오. – planetjones