複数選択をオブジェクトにバインドしようとしています。フォームが作成され、投稿が機能し、何も選択しなくてもエラーは発生しません。言語を選択すると、オブジェクトは言語値を取得しますが、フォームが壊れます。
HashMap<String, String> languages = new LinkedHashMap<String, String>();
languages.put("eng","english");
languages.put("ger","german");
session.setAttribute("languages", languages);
<@spring.formMultiSelect "advancedSearch.languages", languages, " "/>
AdvancedSearch クラスには
文字列言語;
そして、値「eng、rus」を取得しますが、値を取得した後、フォームは機能しません。
エラーメッセージ
HTTP エラー 500
/opac/advSearch へのアクセスに問題があります。理由:
Expected collection or sequence. list evaluated instead to
spring.ftl の 368 行目、12 列目の freemarker.template.SimpleScalar。のせいで:
コレクションまたはシーケンスが必要です。リストは、spring.ftl の 368 行目、12 列目の freemarker.template.SimpleScalar に代わりに評価されます。の
問題のある命令:
==> list list as nextInList [spring.ftl の 368 行目、5 列目] in user-directive spring.formMultiSelect [advancedSearchView.ftl の 59 行目、41 列目]
問題は、言語を保存する方法にあると思います。今はストリングです。他の方法で保持する必要があると思います。String[] List を試しましたが、うまくいきません。