2015-09-27 1 views
2

я имею эту ошибку при создании элемента управления ComboBox весной 4.Spring 4 Атрибут «элементы» должен быть массив, коллекция или карту

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>(); 
... 

Я создаю метод в моем контроллере и аннотирования его с @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> 
... 

Когда я бегу, я получаю выше сообщение об ошибке. Как это исправить? Чего не хватает?

+1

Что происходит, когда вы просто напечатать '$ {разделы}' из вашей JSP? –

ответ

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

Ответ ✓

Я не хватает одну вещь, я должен добавить этот isELIgnored="false", я нашел это согласно инструкции от @JB Nizet распечатать мой EL. Если вы создадите проект webapp от Maven, вам необходимо объявить isELIgnored="false" вручную.

спасибо.

0
<%@ page isELIgnored="false" %> 

Включить вышеуказанное заявление в верхней части файла JSP

Смежные вопросы