2015-11-15 5 views
0

Вид:Validator с календарем primefaces

<p:calendar id="dateRequisition" widgetVar="calwidget" pattern="yyyy-MM-dd HH:mm" value="#{examrequisitionsController.selected.dateRequisition}" 
           title="#{bundle.CreateExamrequisitionsTitle_dateRequisition}" required="true" requiredMessage="#{bundle.CreateExamrequisitionsRequiredMessage_dateRequisition}" 
           converterMessage="Invalid Birth Date." effect="slide" showOn="both" navigator="true" yearRange=":+1" 
           minHour="06" maxHour="18" stepMinute="10" disabledWeekends="true" readonlyInput="true"> 
    <f:validator validatorId="dateValidator" /> 
</p:calendar> 

Validator:

public void validate(FacesContext context, UIComponent component, 
     Object value) throws ValidatorException { 
    String msg = ""; 
    if (value == null) { 
     msg = "The Date field is required"; 
    } else { 
     Date dateRequisition = null; 
     try { 
      dateRequisition = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(value.toString()); 

     } catch (ParseException ex) { 
      Logger.getLogger(DateValidator.class.getName()).log(Level.SEVERE, null, ex); 
     } 

     if (!Persistence.createEntityManagerFactory("SystemCardiologyReportsPU").createEntityManager().createNamedQuery("Examrequisitions.findByDateRequisition") 
       .setParameter("dateRequisition", dateRequisition).getResultList().isEmpty()) { 
      msg = "The Date of requisition is already defined."; 
     } 
    } 
    if (!"".equals(msg)) { 
     JsfUtil.validatorMessage(msg); 
    } 
} 

Колонка в БД: dateRequisition datetime NOT NULL.

Я отлаживал и значение, полученное в классе проверки, имеет следующий формат: (java.util.Date) Sun Nov 15 06:00:00 GMT-03:00 2015.

Итак, я хочу отформатировать его до yyyy-MM-dd HH:mm и сравнить со всеми датами в моей БД для проверки, если он уже содержится в моей БД.

Btw, он всегда ловит ParseException.

ответ

Смежные вопросы