我在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>
我做错了什么?
答案 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方法,对其他属性使用类似的。