Пользовательский валидатор не вызывается, если значение даты неверно.Primefaces - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующее в моем 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

, может кто-нибудь помочь мне, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...