如何将选定的行属性发送到弹簧控制器

时间:2018-05-29 08:34:23

标签: java spring jsp spring-mvc

我在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 :(得分:0)

我认为您使用单个按钮提交数据。在这里,如果你提交,这意味着你要向服务器端发送总表数据列表,服务器端你将获得表数据列表,因为你正在使用单个提交(加入)按钮。

但是,您的要求是发送特定的行数据,因为您需要为每一行维护单独的ID,或者更好地为每一行使用单独的按钮。那么只有你可以将特定的行数据发送到服务器。

如果你为每一行使用单独的id,那么最好使用Jquery或Javascript来捕获传递对象使用ajax的数据。

如果有帮助请促进。

答案 1 :(得分:0)

<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()}。请记住,在leagueId的模型类中使用getter方法,对其他属性使用类似的。