Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring MVC, как отобразить Date в нужном мне формате 
:(
    Опции темы
Slanix
Дата 8.8.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.1.2004

Репутация: нет
Всего: 1



Бьюсь уже целый день. В общем надо отобразить поле команды типа Date в определённом формате в <form:input>.
Подробнее:
  Есть
Код

public class myBean  {

  private Date firstDate;
  private Date lastDate;

  public void setFirstDate(Date date) {
      firstDate = date;
  }
  public Date getFirstDate() {
      return firstDate;
  }

  public void setLastDate(Date date) {
      lastDate = date
  }
  public Date getLastDate() {
      retirn lastDate;
  }

}

Есть форм-контроллер
в initBind зарегистрирован customEditor
Код

        SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN,
                                                           Locale.US);
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, null,
                                    new CustomDateEditor(dateFormat, true));


Показать не проблема, проблема, что бы при этом продолжал работать BindError, который в случае неправильного формата введенной даты выдаем сообщение об ошибке и оставляет значение в input-е.

--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
Tony
Дата 8.8.2007, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Код

    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
        binder.registerCustomEditor(Date.class, "somedate" ,new CustomDateEditor(new SimpleDateFormat("dd-MM-yyyy"), false)); 
    }



--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Slanix
Дата 9.8.2007, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.1.2004

Репутация: нет
Всего: 1



У меня это самое и есть. Но это применительно для биндинга пользовательской строки, которую он ввел на форме, на поле формбина. А мне необходимо, что бы на форме отображалась дата в нужном мне формате. Сейчас же она отображается в фомате MM-dd-yyyy hh:mm:ss
--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
Tony
Дата 9.8.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Тоесть как сделать лоад в правельном формате? А каким ты контролом выводишь дату?

Это сообщение отредактировал(а) Tony - 9.8.2007, 11:44


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Slanix
Дата 9.8.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.1.2004

Репутация: нет
Всего: 1



<form:input>

Я в принципе понял, что он использует то, что есть initBinder. Но если, я ушёл с этой формы (и соответствующий контроллер) на другую (там другой контроллер) и потом с той другой возвращаюсь на 1-ю, то initBinder для этой команды уже не срабатывает.

Это сообщение отредактировал(а) Slanix - 9.8.2007, 12:15
--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
Tony
Дата 9.8.2007, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



А ты пробывал добавить такойже биндер во 2 контоллер ? A 4то если свой контрол типа <d: property="eeeee"  format="dd-MM-yyyy" /> ? А вообще возмможно ли селать биндер для всех контроллерров (без копирования initBinder())?

Это сообщение отредактировал(а) Tony - 9.8.2007, 23:45


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Slanix
Дата 10.8.2007, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.1.2004

Репутация: нет
Всего: 1



Там примерно так работает:
 - Для форм-контроллера есть форм-бин
 - В initBinder регистрируется CustomEditor для полей форм-бин с типом Date
 - это всё запихивается в BindException
 - и при показе формы она для тэга <form:input path="xxx"> и xxx смотрит в BindException и форматирует вывод с соответствии с лежащим там CustomEditor-ом 

    Таким образом, если я в mav положит мой бин и делаю форвард на jsp которая отображает этот бин, то в том контроллере из готорого я форвардю нет нужного мне CustomEditor , т.к. там был свой форм-бин.  smile 

Сорри если получилось запутанно.
--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
Tony
  Дата 10.8.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



А что если создать customBinder для всех бинов ? Посмотри ету ветку правда пока у меня не полу4илось.
sjudi


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Slanix
Дата 13.8.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.1.2004

Репутация: нет
Всего: 1



Идея хорошая, но контроллеры могут быть разными (в которых нет initBinder-а).
--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
Tony
Дата 13.8.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



А ты собмитишь фо4мочки в контроллерты не расширяющие CancellableFormController i SimpleFormController ?


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Slanix
Дата 15.8.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 30.1.2004

Репутация: нет
Всего: 1



Tony, там все просто оказалось. Надо читать JavaDoc внимательнее.
ServletRequestDataBinder

В общем там всё понятно. Только конструктор использую
ServletRequestDataBinder(Object target, String objectName), где objectName - это commandName.

а то по дефолту у него "command".

Это сообщение отредактировал(а) Slanix - 15.8.2007, 11:53
--------------------
Я буду искать лица Твоего, Господи Пс.26:8
PM MAIL ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.