Как отправить выбранный атрибут строки в контроллер пружины - PullRequest
0 голосов
/ 29 мая 2018

Я заполнил сетку в JSP следующим образом

<c:forEach items="${leagueJoinList}" var="leagueList">
    <tr align="center" class="courseRow">
        <td>${leagueList.leagueName}</td>
        <!-- //finfd clicked index and set league id value from that-->
        <td>
            <form:hidden path="leagueId" value="${leagueList.leagueId}"/>
        </td>

        <td>
            <button type="button" class="btn btn-link"
                    onClick="joinLeague()">Join
            </button>
        </td>
    </tr>
</c:forEach>

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

<form:form action="${pageContext.request.contextPath}/searchLeagues"
           method="POST"
           modelAttribute="leagueObj"
           id="joinLeagueForm_">

, и кнопка также включена в ту же форму, но за пределами таблицы

<button id="primaryButton" type="submit" class="btn btn-link"
                        name="joinLeagues" value="joinLeagues">Join</button>

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018
<c:forEach items="${leagueJoinList}" var="leagueList">
 <tr align="center" class="courseRow">
    <td>${leagueList.leagueName}</td>
    <td><a href="<c:url value="/searchLeagues/${leagueList.leagueId}"/>" class= "btn btn-primary"/>Join</td>              
 </tr>
</c:forEach>

попробуйте код выше.Это создаст кнопку в каждой строке с привязанным идентификатором leagueId.Создайте контроллер для сопоставления запроса со значением тега c: url.

Удалите тег формы и кнопку за пределами таблицы, которую вы используете.

PS: я никогда не использовал атрибуты напрямую как $ {leagueList.leagueId}.Если это не сработает, попробуйте использовать $ {leagueList.getLeagueId ()}.Не забудьте иметь метод getter в классе модели для leagueId и аналогичный для других атрибутов.

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

Я думаю, что вы используете одну кнопку для отправки данных.здесь, если вы отправляете, это означает, что вы отправляете общий список таблиц данных на серверную часть, на серверной стороне вы получите список данных таблицы, потому что вы используете одну кнопку отправки (соединения).

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

, если вы используете отдельные идентификаторы для каждой строки, тогда лучше использовать Jquery или Javascript для сбора данных для передачи объекта, используйте ajax.

, если это помогаетпожалуйста, продвигайте.

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