У меня есть следующее в моем XHTML
<p:calendar
id="endDate"
styleClass="dateWidth"
mask="99/99/9999"
value="#{inputController.endDate}"
showOn="button"
pattern="MM/dd/yyyy" >
<f:validator validatorId="net.elements.ui.DateValidator" />
</p:calendar>
, и вот мое DateValidator
package net.elements.ui;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import net.stafftrack.ui.web.jsf.controller.StaffTrackJSFController;
@FacesValidator(DateValidator.VALIDATOR_ID)
public class DateValidator implements Validator
{
public static final String VALIDATOR_ID = "net.elements.ui.DateValidator";
@Override
public void validate(FacesContext facesContext, UIComponent component, Object value) throws ValidatorException
{
try
{
Date inputDate = (Date) value;
if (inputDate == null)
{
//Validation message
return;
}
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
sdf.setLenient(false);
sdf.parse(sdf.format(inputDate));
}
catch (ParseException e)
{
//Validation message
return;
}
catch (IllegalArgumentException e)
{
//Validation message
return;
}
}
}
Это вызывается правильно, когда значение пустое, но это не такмне звонят, если я ввожу такие значения, как 99/99/9999
как мне это сделать?
Я использую Primefaces 6.2
, может кто-нибудь помочь мне, пожалуйста.