Хобрук: Ваш путь к мастерству в программировании

Не удается привязать данные к списку атрибутов модели в jsp

Я изучаю весенние mvc и jsp. У меня есть форма в моем файле jsp. Я хочу изменить значения разбора логического списка в файл jsp, используя атрибуты модели. Позвольте мне уточнить, я анализирую список в файл jsp в своем контроллере. Список содержит логические значения. Во-первых, мне нужно создать строку для каждого элемента в списке с флажком. Если логическое значение истинно, необходимо установить флажок. Я сделал эту часть. Но проблема в том, что когда я щелкаю некоторые из отмеченных флажков. Соответствующее значение необходимо изменить. Но после нажатия кнопки отправки нулевой список анализируется контроллером. Я понятия не имею об этом. Я тоже прикрепил код.

Контроллер

@Controller
@EnableAsync
public class MyController {

    @Autowired
    private MyService myService;

    @RequestMapping(value = "/myMenu", method = RequestMethod.GET)
    public String generateForm(ModelMap model) {
        ObjectDTO menu = new ObjectDTO();
        BaseDataDTO baseDataDTO = new BaseDataDTO();
        baseDataDTO = 
        myService.getRestrictedMenuBaseData();
        List<LitsDTO> listDTOs = myService.getList();
        model.addAttribute("list", listDTOs);
        model.addAttribute("menu", menu);
        return "myMenu";
    }

    @RequestMapping(value = "/myMenu", method = RequestMethod.POST)
    public String  populateForm(ModelMap model,
        @Valid @ModelAttribute("menu") RestrictedObjectDTO menu,
        BindingResult bindingResult) {

        //here i want to print list valus
    }
}

JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My Form</title>
<meta name="viewport"
    content="width=device-width, initial-scale=1, minimum-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
  function setList(){
    <c:forEach items="${list}" var="listItem">
        if(document.getElementById(listItem.id).checked){
            <c:set target="${listItem}"
                   property = "isdisable"
                   value = "true"  />
        }else{
            <c:set target="${listItem}"
                   property = "isdisable"
                   value = "false"  />
        }
        row = row + 1;
    </c:forEach>        
}
</script>
</head>
<body>

    <form:form action="myMenu.do" method='POST' modelAttribute="menu">
        <table> 
            <c:forEach items="${list}" var="listItem">
                <tr>
                    <td><span class="label_names req">${listItem.name}</span>
                        <c:if test="${listItem.disable}">
                            <input type="checkbox" id="${listItem.id}" checked>
                        </c:if> 
                        <c:if test="${!listItem.disable}">
                            <input type="checkbox" id="${listItem.id}">
                        </c:if>
                    </td>
                </tr>
            </c:forEach>
            <tr>
                <td align="left"><input class="input_buttons" name="action"
                    style="float: left; margin-left: 281px;" type="submit" value="save" onClick="setList()"/>
                </td>
            </tr>
         </table>
    </form:form>    
</body>                     

Любая помощь будет приятной

Спасибо большое...


  • Почему вы объединили js с кодом jsp в теге <script>? 29.10.2018

Ответы:


1

Причина, по которой вы получаете пустой список на своем контроллере при отправке формы, заключается в том, что вы не использовали элементы управления формы Spring на своей странице jsp, поэтому Spring не сможет сопоставлять значения формы jsp с атрибутами вашей модели, которые вы передаете своему контроллеру.

Чтобы узнать, как сопоставить атрибут весенней модели с элементом страницы jsp, вам нужно изучить атрибуты весенней формы.

Взгляните на пример, приведенный по ссылке ниже, https://www.baeldung.com/spring-mvc-form-tutorial

29.10.2018
Новые материалы

Введение в контекст React
В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

Это оно
Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

5 обязательных элементов современного инструмента конвейера данных
В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..