JSP отправляет значение динамических флажков сервлету - PullRequest
0 голосов
/ 10 мая 2018

Я совершенно новичок в мире программирования html / jsp / servlett.На самом деле я работаю над проектом, в котором я создаю динамические флажки.Каждое из них должно иметь различное значение.

<c:forEach items="${sessionScope.camlist}" var="cam">
                  <form id="updatePermission" method="post" action="<%=request.getContextPath() %>/PermissionHandling?operation=update_permissions&id=${cam.kameraid}" >
                    <table>
                        <td>${cam.kameraid}</td>
                                <script>
                                    console.log("${cam.kameraid}");

                                    </script>
                        <td>'${cam.standort}'</td>
                        <td>'${cam.url}'</td>
                        <td>${cam.aufnahmeinterval}</td>
                        <td>
                        <c:set var="checked" value="false"/>
                        <c:forEach items="${sessionScope.permissionList}" var="perm">
                            <c:if test="${perm.kameraid eq cam.kameraid}">
                            <input type="checkbox" name="selection" checked="checked" value="${cam.kameraid}" onClick="callServlett()">
                            <c:set var="checked" value="true"/>
                            <c:set var="continueExecuting" scope="request" value="false"/>
                             </c:if>
                        </c:forEach> 
                        <c:if test="${checked eq false}">
                            <input type="checkbox" name="selection" value="${cam.kameraid}" onClick="callServlett()">
                        </c:if>
                        </td>                
                     </table>
                    </form>
                  </c:forEach>

            </div>
         </section>
        <script>

        function callServlett()
        {
            document.getElementById("updatePermission").submit();
        }
        </script>

Таким образом, я получаю таблицу, в которой флажки каждой строки инициализируются в зависимости от того, есть у пользователя разрешения или нет.Когда флажок изменяется при нажатии, я хочу передать значение cameraid моему сервлету, который управляет остальной частью работы., тогда это нуль.

Кто-нибудь может сказать мне, почему этот код не работает, как я ожидаю?

1 Ответ

0 голосов
/ 11 мая 2018

Вам необходимо поместить тег <form> вне цикла forEach.Если вы поместите внутри каждого цикла, создаст новый тег формы, и он может работать не так, как вы хотели.

<form id="updatePermission" method="post" action="<%=request.getContextPath() %>/PermissionHandling?operation=update_permissions&id=${cam.kameraid}" >
       <c:forEach items="${sessionScope.camlist}" var="cam">

       <!-- html code -->
       </c:forEach>
</form>

Вместо вызова servlet для каждого нажатия на checkbox удерживайте кнопку и вызывайте servletкогда вы нажимаете на кнопку.Это уменьшит количество итераций от браузера к серверу.

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