我在Spring 4中创建一个Combobox项时出现此错误。
java.lang.IllegalArgumentException: Attribute 'items' must be an array, a Collection or a Map
org.springframework.web.servlet.tags.form.AbstractMultiCheckedElementTag.writeTagContent(AbstractMultiCheckedElementTag.java:234)
org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84)
...
我有POJO班Student
:
public class Student {
@Size(min=3, max=30)
private String firstName;
@Size(min=3, max=30)
private String lastName;
@NotEmpty
private String sex;
@DateTimeFormat(pattern = "dd/MM/yyyy")
@Past @NotNull
private Date dob;
@Email @NotEmpty
private String email;
@NotEmpty
private String section;
@NotEmpty
private String country;
private boolean firstAttempt;
@NotEmpty
private List<String> subjects = new ArrayList<String>();
...
我在Controller中创建方法并使用@ModelAttribute
@ModelAttribute("sections")
public List<String> initializeSections() {
List<String> sections = new ArrayList<String>();
sections.add("Graduate");
sections.add("Post Graduate");
sections.add("Research");
return sections;
}
这是我的JSP:
...
<div class="row">
<div class="form-group col-xs-12">
<label class="col-xs-3" for="section">Section</label>
<div class="col-xs-7">
<form:radiobuttons path="section" items="${sections}"/>
<div class="has-error">
<form:errors path="section" class="help-inline" />
</div>
</div>
</div>
</div>
...
当我跑步时,我收到错误信息。 如何解决?缺少什么?
答案 0 :(得分:2)
回答✓
我找不到一件事,我必须添加这个
isELIgnored="false"
根据 @JB Nizet 的指示打印出我的EL
。如果你 从Maven创建webapp项目,您必须手动声明isELIgnored="false"
。谢谢。
答案 1 :(得分:1)
您正在尝试生成多个单选按钮,以及运行时的值。 修改控制器代码如下,然后尝试。
@ModelAttribute("sections")
public Map<String, List<String>> initializeSections() {
List<String> sections = new ArrayList<String>();
sections.add("Graduate");
sections.add("Post Graduate");
sections.add("Research");
Map<String, List<String>> sectionData = new HashMap<>();
sectionData.put("sections", sections);
return sectionData;
}
答案 2 :(得分:0)
<%@ page isELIgnored="false" %>
在jsp文件的顶部包含上述语句