2015-01-20 2 views
1

Мое приложение использует Play 2.3.7.Как применить форматировщик к уникальной форме в Play 2?

У меня есть форму, которая нуждается в специальном форматировании для даты. Так что я делаю это в методе моего контроллера, который создает форму и делает вид:

Formatters.register(Date.class, new SimpleFormatter<Date>() { 
    private SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); 

    @Override 
    public Date parse(String input, Locale locale) throws ParseException { 
     try { 
      return formatter.parse(input); 
     } catch (ParseException e) { 
      // We catch the error because it should be transparent for the user 
      Logger.error(e.getLocalizedMessage(), e); 
      return null; 
     } 
    } 

    @Override 
    public String print(Date input, Locale locale) { 
     return formatter.format(input); 
    } 
}); 

Проблема заключается в том, что эта форматировщик применяется глобально ко всему моему приложению. И мои другие формы используют другой формат даты: dd/MM/yyyy HH: mm: ss (французский формат). Итак, как я могу применить форматировщик только к одной форме или, по крайней мере, отменить регистрацию форматирования?

Благодаря

ответ

1

Вы можете использовать один из Formats аннотаций и аннотировать поля формы следующим образом:

public class SampleForm { 

    @Formats.DateTime(pattern = "yyyy-MM-dd HH:mm:ss") 
    private Date date; 

    ... 

} 
+0

Спасибо, это делает работу для моей проблемы. Однако этот вопрос по-прежнему применим для тех, кто хочет применить форматировщик только для одной формы, а не для форм всего приложения. – c4k

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

  • Нет связанных вопросов^_^