Как использовать список в качестве атрибута модели в Spring? - PullRequest
1 голос
/ 25 апреля 2019

У меня есть мой Домашний контроллер вот так:

    @RequestMapping("/")
    public ModelAndView welcome(@ModelAttribute("myValuesInRows") List<String> myValuesInRows,  ModelMap model) {
        List<Spravochnik> dropDown = spravochnikService.findAll("sprav_of_spravs");
        List<String> justValuesInRows = new ArrayList<>();
        for(Spravochnik sprav : dropDown) {
            for(List<String> vals : sprav.getValuesInRows()) {
                for(String v : vals) {
                    justValuesInRows.add(v);
                }
            }
        }
        for(int i=1; i<justValuesInRows.size(); i+=2) {
            myValuesInRows.add(justValuesInRows.get(i));
        }
        model.addAttribute("myValuesInRows", myValuesInRows);
        return new ModelAndView("home", model);
    }

и на моем домашнем экране есть эта опция, которую я использую:

<f:form>
<f:select path="myValuesInRows" items="${myValuesInRows}" name="tableName" id="tableName">
</f:select>
</f:form>

Когда я пытаюсь показать это, Spring показывает эту ошибку:

No primary or default constructor found for interface java.util.List.

Я хотел бы подключить мой выбор к этому списку, который я передаю, как это здесь делается?

1 Ответ

1 голос
/ 25 апреля 2019

Используйте один из классов, которые реализуют List, например ArrayList или LinkedList, которые имеют конструкторы по умолчанию.

@ModelAttribute("myValuesInRows") ArrayList<String> myValuesInRows

Вы можете найти список всех известных классов реализации List здесь:

https://docs.oracle.com/javase/8/docs/api/java/util/List.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...