JSP表

时间:2018-04-21 13:29:59

标签: html jsp servlets

我有一个带有表格的JSP页面:

<table class="table table-hover">
    <tbody>
    <thead class="thead-light">
    <th scope="col">#</th>
    <th scope="col">Number</th>
    <th scope="col">Tariff</th>
    <th scope="col">Cost</th>
    <th scope="col">Action</th>
    </thead>
    <tbody>
    <c:forEach items="${contractsList}" var="contract" varStatus="loop">

    <thead>
        <th scope="col">${loop.index + 1}</th>
        <th>${contract.number}</th>
        <th>${contract.tariffName}</th>
        <th>TODO</th>
        <th><input type="submit" value="Block"></th>
    </thead>


    </c:forEach>
    </tbody>
</table>

如何在每一行中创建一个按钮,发送包含此行数据的POST请求?例如,我按下第2行中的按钮,它将发布请求发送到某个具有该行合同数量的URL作为请求参数。我尝试添加<form>代码,但它会破坏表格的格式,对我而言,在这种情况下,如何将合同号码作为请求参数传递不清楚。

更新:我这样做了

<tr onclick="showContract('${contract.contractId}')"  style="cursor: pointer;">

<script>
    function showContract(id) {
        var form = document.createElement('form');
        document.body.appendChild(form);
        form.method = 'post';
        form.action = '/client/show_contract';
        var input = document.createElement('input');
        input.type = 'hidden';
        input.name = 'contractId';
        input.value = id;
        form.appendChild(input);

        form.submit();
    }
</script>

1 个答案:

答案 0 :(得分:0)

最简单的方法是将表单标记放在循环中。

<c:forEach items="${contractsList}" var="contract" varStatus="loop"> 
<form action="..YourServlet" method="post">
<thead>
<th scope="col">${loop.index + 1}</th>
<th>${contract.number}</th> 
<th>${contract.tariffName}</th>
<th>TODO</th> 
<th><input type="submit" value="Block"></th> 
</thead> 
<input type="hidden" name="cnumber" value="${contract.number}"/>
<input type="hidden" name="ctarrif" value="${contract.tarrifName}"/>
</form>
</c:forEach>

然后在你的servlet中获取你通常会做的参数:

String contractNumber = request.getParameter ("cname");
String tarrifName = request.getParameter ("ctarrif");