這應該是非常基本的,但我無法在網絡上找到任何有關它的東西,只是零星的東西,我似乎不能合在一起。下拉框 - 從Spring MVC模型/上下文到表單使用freemarker
我們使用Spring MVC和freemarker。現在我想添加一個表單到我的頁面,允許我從預定義列表中選擇一個值(需要在後端訪問數據庫)。
我的控制器:
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ModelAndView get(@PathVariable Integer id) {
// stuff..
ModelAndView mav = new ModelAndView();
mav.addObject("targetObject", new TargetObject());
mav.addObject("options", Arrays.asList("a", "b", "c"));
mav.setViewName("someview");
return mav;
}
我發現freemarkers彈簧支撐spring.ftl
,似乎我應該用<@spring.formSingleSelect>
,我已經試過這樣:
someView.ftl:
<#import "../spring.ftl" as spring />
<form action="somePath" method="POST">
<@spring.formSingleSelect "targetObject.type", "options", " " />
<input type="submit" value="submit"/>
</form>
因此targetObject.type被綁定自動由宏看來。
但是,如何讓我的選項進入freemarker序列,以便宏可以創建選項?
現在我得到:
Expected collection or sequence. options evaluated instead to freemarker.template.SimpleScalar on line 227, column 20 in spring.ftl.
The problematic instruction:
----------
==> list options as value [on line 227, column 13 in spring.ftl]
in user-directive spring.formSingleSelect [on line 53, column 9 in productBase/show.ftl]
----------
我也試過:任何幫助
freemarker.core.NonStringException: Error on line 48, column 18 in someView.ftl
Expecting a string, date or number here, Expression options is instead a freemarker.template.SimpleSequence
感謝的:沿着這些線路,但沒有成功
<@spring.bind "${options}" />
和更多的東西!
您唯一需要做的就是使用選項而不是「選項」。 – 2017-05-05 01:09:04