将动态创建的表信息发送到java servlet - 没有javascript / jquery

时间:2014-04-09 01:53:02

标签: forms jsp servlets

我目前在jsp文件中有以下内容:

<c:choose>
    <c:when test = "${fn:length(song.songInfo) > 0}">   
        <form action='cart' method='POST'>
            <table style="width:1000px" style="text-align:center">
                <tr>
                    <th>Song Title</th>
                    <th>Song Artist</th>
                    <th>Album Title</th>
                    <th>Genre</th>
                    <th>Publisher</th>
                    <th>Year</th>
                    <th>Price</th>
                    <th>Select ?</th>
                </tr>
                <c:forEach var="item" items="${song.songInfo}"> 
                    <c:set var="split" value="${fn:split(item,';')}" /> 
                    <tr>
                      <td>${split[0]}</td>
                      <td>${split[1]}</td> 
                      <td>${split[2]}</td>
                      <td>${split[3]}</td>
                      <td>${split[4]}</td>
                      <td>${split[5]}</td>
                      <td>${split[6]}</td>
                      <td>${split[7]}</td>
                      <td><input type="checkbox" name="songInfo" value="${split[0]} "></td>
                    </tr>   
            </c:forEach>
            </table>
            <input type="submit" value="Add to Cart"/>
        </form>

    </c:when>
    <c:otherwise>
        <p>No results found</p>
    </c:otherwise>
</c:choose>

我想将<td>个项目发送到Java servlet,如果已经勾选了行的相应checkbox

我在strCheckBoxValue = request.getParameter("songInfo");中使用servlet,但这只会检索一个字符串。

有人建议我可以将所有信息发送到servlet表格中任意数量的行而不使用javascript/JQuery吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以为每个TD提供一个带有名称的相应隐藏输入,以便它将以表格提交:

<td>${split[0]}<input type='hidden' name='split0' value='${split[0]}' /></td>
<td>${split[1]}<input type='hidden' name='split1' value='${split[1]}' /></td>

或者只是给TD显示可见的输入:

<td><input type='text' name='split0' value='${split[0]}' /></td>
<td><input type='text' name='split1' value='${split[1]}' /></td>

如果你给每个人一个唯一的名字(如上所述),那么在你的servlet中:

String split0 = request.getParameter("split0"); 
String split1 = request.getParameter("split1");

如果你给他们所有相同的名字,即name='split'

String[] split = request.getParameterValues("split");