“$ {param.mode $ {cntr}}”的合法EL语法是什么?

时间:2011-03-25 15:15:14

标签: jsp jstl el

我写的是:

<c:forEach var="cntr" begin="1" end="10">
 <c:set var="mycase" value="${param.mode${cntr}}" />
 <c:if test="${mycase != null}">
   <c:param name="mode${cntr}" value="${mycase}"/>
  </c:if>
</c:forEach>

我想要的结果是位于此外的重定向继承param.mode1param.mode2等的值,就像我写的那样:

  <c:if test="${param.mode1 != null}">
    <c:param name="mode1" value="${param.mode1}"/>
  </c:if>
  <c:if test="${param.mode2 != null}">
    <c:param name="mode2" value="${param.mode2}"/>
  </c:if>
  <c:if test="${param.mode3 != null}">
    <c:param name="mode3" value="${param.mode1}"/>
  </c:if>
  <c:if test="${param.mode4 != null}">
    <c:param name="mode4" value="${param.mode2}"/>
  </c:if>
  <c:if test="${param.mode5 != null}">
    <c:param name="mode5" value="${param.mode1}"/>
  </c:if>
  <c:if test="${param.mode6 != null}">
    <c:param name="mode6" value="${param.mode2}"/>
  </c:if>

所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您需要使用mode${cntr}设置另一个变量,并使用括号表示法获取相关值,其中您可以传递动态密钥。

<c:forEach var="cntr" begin="1" end="10">
    <c:set var="mode" value="mode${cntr}" />
    <c:set var="mycase" value="${param[mode]}" />
    <c:if test="${mycase != null}">
        <c:param name="mode${cntr}" value="${mycase}"/>
    </c:if>
</c:forEach>