пружинный переплет - PullRequest
       11

пружинный переплет

1 голос
/ 11 марта 2010

Я пытаюсь связать множественный выбор с моим объектом. Форма создана, и сообщение работает, и при отсутствии выбора ошибок не возникает. Если я выбираю язык, объект получает значение языка, но форма разрывается.

        HashMap<String, String> languages = new LinkedHashMap<String, String>();
    languages.put("eng","english");
    languages.put("ger","german"); 

    session.setAttribute("languages", languages);

<@ spring.formMultiSelect "advancedSearch.languages", языки, "" />

Класс AdvancedSearch имеет

Строковые языки;

и получает значение "eng, rus", но форма не работает после получения значения.

Сообщение об ошибке

HTTP ERROR 500

Проблема с доступом к / opac / advSearch. Причина:

Expected collection or sequence. list evaluated instead to

freemarker.template.SimpleScalar on строка 368, столбец 12 в Spring.ftl. Вызвано:

Ожидаемая коллекция или последовательность. список оценивается вместо freemarker.template.SimpleScalar on строка 368, столбец 12 в Spring.ftl.

проблемная инструкция:

==> перечислить список как nextInList [в строке 368, столбец 5 в spring.ftl] в пользовательская директива spring.formMultiSelect [в строке 59, столбец 41 в advancedSearchView.ftl]

Мне кажется, проблема в том, как я сохраняю языки. Прямо сейчас это String. Я думаю, мне нужно держать это как-то иначе. Я попробовал String [] List, но не могу заставить что-то работать.

1 Ответ

1 голос
/ 11 марта 2010
<@spring.bind "advancedSearch.languages"/>
<#assign selectedLangs = spring.status.value?default(" ")>
<select multiple="multiple" id="${spring.status.expression}" name="${spring.status.expression}"}>
    <#list languages?keys as value>
    <#if selectedLangs?contains(value) >
        <#assign isSelected = true>
    <#else>
        <#assign isSelected = false>
    </#if>
    <option value="${value?html}"<#if isSelected> selected="selected"</#if>>${languages[value]?html}
    </#list>
</select>

Это сработало!

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