Свойство конвертера JSF - PullRequest
5 голосов
/ 18 января 2010

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

Код ниже регистрирует два DateTimeConverters, первый для даты, включая время и второй для только время. Но свойство картины никогда не получает набор. Можно ли это сделать?

<converter>
    <converter-id>dateTimeConverter</converter-id>
    <converter-class>javax.faces.convert.DateTimeConverter</converter-class>
    <property>
        <property-name>pattern</property-name>
        <suggested-value>yyyy-MM-dd HH:mm:ss</suggested-value>
    </property>
</converter>

<converter>
    <converter-id>timeConverter</converter-id>
    <converter-class>javax.faces.convert.DateTimeConverter</converter-class>
    <property>
        <property-name>pattern</property-name>
        <suggested-value>HH:mm:ss</suggested-value>
    </property>
</converter>

1 Ответ

6 голосов
/ 18 января 2010

К сожалению, это невозможно через faces-config.xml.Объявление <property>, которое вы пытаетесь, не используется во время выполнения.

Если все, что вам нужно, это управлять шаблоном в одном месте , тогда лучше всего создатьпользовательский конвертер.Для этой конкретной цели это не так сложно.Просто увеличьте DateTimeConverter и установите шаблон во время строительства.Вот базовый пример:

public MyDateTimeConverter extends DateTimeConverter() {
    public MyDateTimeConverter() {
        setPattern("yyyy-MM-dd HH:mm:ss");
    }
}

Конечно, вы можете получить шаблон из другого места, например, из файла свойств или XML-файла в classpath.

Зарегистрируйте этот конвертер следующим образом:

<converter>
    <converter-for-class>java.util.Date</converter-for-class>
    <converter-class>com.example.MyDateTimeConverter</converter-class>
</converter>

Так и должно быть.Нет необходимости в f:converter или UIOutput#setConverterId().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...