Как привязать дату к полосам, используя определенный формат?ММ/дд/гггг ЧЧ:мм:сс

StackOverflow https://stackoverflow.com/questions/3752200

  •  04-10-2019
  •  | 
  •  

Вопрос

Как привязать дату к полосы используя определенный формат?"ММ/дд/гггг ЧЧ:мм:сс"

<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />
Это было полезно?

Решение

Полосы использует Преобразователи типов для преобразования параметров запроса (строки) в определенные типы.Javadoc для конвертера типов даты по умолчанию можно найти здесь:

net.sourceforge.stripes.validation.DateTypeConverter

Чтобы изменить форматы по умолчанию, говорится:

Этот набор форматов по умолчанию можно изменить, предоставив другой набор строк формата в пакете ресурсов Stripes или путем создания подкласса и переопределения getFormatStrings().Во всех случаях шаблоны следует указывать с использованием одиночных пробелов в качестве разделителей вместо косых черт, тире или других символов.

И:

Ключи, используемые в пакете ресурсов для указания строк формата и шаблона предварительной обработки:полосы.dateTypeConverter.formatStrings и полосы.dateTypeConverter.preProcessPattern

Если вас это не устраивает, вы всегда можете использовать свой собственный ТипКонвертер.Этот преобразователь пользовательского типа затем может быть привязан к установщику в ActionBean к:

@Validate(converter=YourCustomTypeConverter.class)
public void setDate(Date date) {
  this.date = date;
}

Если вы хотите, чтобы сопоставление выполнялось автоматически, вам нужно либо переопределить сопоставитель по умолчанию, либо создать другой (под) тип.Например, вы создаете собственный преобразователь типов не для java.util.Date, а для своего собственного типа, который наследуется от java.util.Date.Поскольку это всего лишь подтип без какого-либо дополнительного поведения, остальная часть приложения может использовать его как java.util.Date.

Date date;

// No @validate needed, maps to MyCustomDate
public void setDate(MyCustomDate date) {
  this.date = date;
}     

Другие советы

<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>

SimpleDateFormat. сможет вам помочь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top