2012-05-25 4 views
2

Как изменить формат java.util.Date объекта в struts 2. Что я тестировал, Struts 2 принимает m/d/yy. Можно ли изменить формат?Дата ввода в Struts2

А также как изменить сообщение по умолчанию «Недопустимое значение поля для даты поля»?

метка даты в стойках2 может использоваться только на выходе.

+1

Это немного сбивает с толку ... Принимает вы имеете в виду то, что вводится? В этом случае ожидается формат даты, основанный на локали пользователей. Если вы хотите отформатировать его на JSP, я бы сказал, что это другая проблема, хотя мне жаль, что не было одной настройки, которая бы установила глобальный формат, я не думаю, что есть. mprabhat показывает, как форматировать на стороне JSP. – Quaternion

+0

есть. принимаю, я имею в виду вход. Я хочу, чтобы мой пользователь мог вводить в другом формате, если это возможно. –

ответ

2

Вы можете передать формат s:date тег

<s:date name="myDate" format="yyyy-MM-dd" /> 

Чтобы изменить сообщение об ошибке по умолчанию, в вашем validation.xml вы можете добавить параметр сообщения

<field name="myDate"> 
     <field-validator type="date"> 
      <message key="errors.myDateRequired" /> 
     </field-validator> 
    </field> 

Затем в файле ApplicationResources.properties вы обеспечите значение errors.myDateRequired

Обновление: Согласно комментарию

s:date - это только тег только для чтения, который не может использоваться для приема ввода от пользователя.

Для включения TextField принять дату в другом формате, пара подходов:

  1. Использование struts2-JQuery плагин, он имеет очень приятный элемент выбора даты, которые поддерживают другую дату TimeFormat, showcase, DatePickerTag.
  2. Пользовательский код javascript для форматирования ввода пользователем.
  3. Использование JQuery (если разрешено) и использовать JQuery DatePicker

Вы можете использовать пользовательский конвертер использовать текстовое поле для даты, example

+0

тег будет отформатировать дисплей. Я хочу, чтобы пользователь мог вводить разные форматы в текстовое поле. –

+0

Обновлено мое сообщение – mprabhat

+0

, так что невозможно установить в struts2 без клиентских скриптов? хорошо, спасибо. –

0

распорок формат даты принимает в зависимости от локали пользователя. Поэтому для разных локалей вы можете иметь разные форматы дат. Таким образом, вы не сможете поддерживать несколько форматов дат для одного и того же языка, но я не понимаю, зачем вам это нужно в любом случае, это только запутает ваших пользователей. Единственный способ поддерживать разные форматы дат для одного и того же языкового стандарта без javascript будет с настраиваемым преобразователем даты в виде заметок @mprabhat.

0

Вы можете увидеть официальный документ об этом:

Определите формат для каждого языка у пакета ресурсов. Например, соответствующее расширение определение формата en_US может выглядеть следующим образом:

format.date = {0,date,MM/dd/yy} 

Параллельно, вы можете добавить следующую строку в ваш de_DE пачке:

format.date = {0,date,dd.MM.yyyy} 

http://struts.apache.org/2.1.6/docs/formatting-dates-and-numbers.html

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