如何使用JSTL和EL

时间:2018-08-10 08:06:31

标签: jstl el

我有8个复选框和1个按钮,当用户选中其中任何一个复选框并单击该按钮时,我要检查是否选中了任何复选框并将其显示在另一个.jsp中

到目前为止,我已经很少提及类似的问题了。所以我试图用自己的逻辑来管理

First.jsp

<c:forEach begin="1" end="8" varStatus="loop">
        <input type="checkbox"  id="seat" name="seat${loop.index}" value="seat${loop.index}" >
        <label for="seat">Seat${loop.index}</label>
</c:forEach> <br> <br>
<input type="submit" value="Save" name="savebtn">

Second.jsp

<c:forEach begin="1" end="8" varStatus="loop">
        <c:if test="${not empty param.seat[loop.index]}">
            <c:out value="${param.seat1} is booked"/>
        </c:of>
    </c:forEach>

关于上面的代码,我有2个问题:

我无法在参数loop.index内获取$param.seat[loop.index]的值,这不起作用 即使我尝试手动进行操作,我也只能从seat1中获得价值。我无法从其余的东西(seat2,seat3等)中获得价值。

1 个答案:

答案 0 :(得分:1)

${param.seat[loop.index]}意味着seat是一个集合,但不是(可能甚至不存在)。您在${param.seatX}之后,可以动态设置X。为此,您可以先创建一个包含参数名称的变量:

<c:set var="seatVarName" value="seat${loop.index}"/>

现在,您可以使用此变量从隐式EL对象获取参数值:

${param[seatVarName]}

另请参阅: