gpt4 book ai didi

java - Spring 绑定(bind)形式多选

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:17 25 4
gpt4 key购买 nike

我正在尝试将多选绑定(bind)到我的对象。表单已创建,帖子可以正常工作,当我不选择任何内容时,不会发生任何错误。如果我选择一种语言,对象将获得语言值,但形式会中断。

        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

Problem accessing /opac/advSearch. Reason:

Expected collection or sequence. list evaluated instead to

freemarker.template.SimpleScalar on line 368, column 12 in spring.ftl. Caused by:

Expected collection or sequence. list evaluated instead to freemarker.template.SimpleScalar on line 368, column 12 in spring.ftl. The

problematic instruction:

==> list list as nextInList [on line 368, column 5 in spring.ftl] in user-directive spring.formMultiSelect [on line 59, column 41 in advancedSearchView.ftl]

我认为问题出在我保存语言的方式上。现在是字符串。我想我需要用其他方式来保持它。我尝试了 String[] List 但无法正常工作。

最佳答案

<@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>

这有效!

关于java - Spring 绑定(bind)形式多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com