Кодировщик с компонентом в Tapestry

У меня есть одна страница, на которой отображаются сведения о каком-то клиенте. Я использую t:loopдля отображения некоторых данных. В t:loopя просто передаю sourceи value. Пока все хорошо, моя страница работает нормально. Но когда я пытаюсь отправить страницу, она внезапно дает мне исключение.

«Не удалось найти приведение типа java.lang.String к типу [addressUsageValue] Доступные приведения:……….»

Ниже приведен пример кода.


                  
                              ${addressUsageValue?.usage}
                              ${addressUsageValue?.address}
                              ${addressUsageValue?.postCode}
                              ${addressUsageValue?.city}
                              ${addressUsageValue?.country}
                  

Я немного погуглил и нашел ниже ссылки.

http://tapestry.apache.org/5.3.3/apidocs/org/apache/tapestry5/corelib/components/Loop.html https://issues.apache.org/jira/browse/TAP5-609

Итак, я создал кодировщик для Loop. Ниже приведен пример кода. В приведенном ниже методе toClient()я случайным образом возвращаю любое значение, а в методе toValue()я возвращаю ноль.

private final ValueEncoder addressUssageEncoder = 
    new ValueEncoder() {

    public String toClient(DtoAddressUsageInfo value) {
          return String.valueOf(value.getUsage());
    }

    public DtoAddressUsageInfo toValue(String clientValue) {
          return null;
    }

};

Теперь мой код работает нормально, и я могу отправить форму.

Здесь у меня возникают сомнения

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

Во-вторых, я только что реализовал кодировщик без какой-либо логики. Я не могу понять, где используется метод toValue() и toClient() и какова цель?

В-третьих, когда я отправляю страницу, почему форма требует кодирования??

5
задан Nicktar 4 December 2013 в 13:15
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: