2016-12-08 3 views
0

Я работаю на DataTable, в котором один столбец содержит различные поля, такие какр: календарь с типом данных String, в управляемом компоненте

  • Имя
  • Зарплата
  • Дата
  • рождения

Так что я взял datatype как String в моем bean-компоненте для этой колонки.

Теперь моя забота, я могу использовать p:calendar для дату рождения с типом данных String в моей фасоли?

Если да, то как?

+0

проблема Строка: вы не можете ожидать пользовательского ввода типа информации, например пользователя A: '10/11/2016' и User B: '11/10/2016', Пользователь C' Wed 13,11,2016' Вы получили очко –

+1

Звучит как плохой выбор .. почему бы не использовать реальные хорошие типы и не использовать разные подход – Kukeltje

+0

@Kukeltje Какой другой подход, не могли бы вы быть более конкретными. Мне нужны некоторые строковые поля, такие как имя и некоторые поля даты в том же столбце –

ответ

0

Используйте FacesConverter

Доказательство концепции:

@Named 
public class DateStringConverter implements Converter { 

    @Override 
    public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) { 
     SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd"); 
     try { 
      return parser.parse(arg2); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 

    @Override 
    public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) { 
     return arg2.toString(); 
    } 

} 

xhthml

<p:calendar value="#{dateAsString}" pattern="yyyy-MM-dd" converter="#{dateStringConverter}" /> 
+0

и как вы справляетесь с делом 'MM.DD.YYYY' –

+0

Я не понимаю. Это не действительный шаблон. Вы знаете компонент p: calendar? – jklee

+0

прочитайте это сообщение http://stackoverflow.com/questions/12575990/calendar-date-to-yyyy-mm-dd-format-in-java и прочитайте мой комментарий, вы поймете, что если дата указана в 'String' пользователь может вводить каждый/ничего внутри него. –

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