【问题标题】:How to parametrize list name in jstl?如何在jstl中参数化列表名称?
【发布时间】:2013-09-04 08:14:59
【问题描述】:

我需要做三个非常相似的代码块,所以我没有复制和粘贴几乎相同的代码,而是将其分离到不同的文件中,现在它在<s:include> 期间进行了参数化。我只有一个问题 - 在块中,我对一个列表进行操作,它的部分名称是参数之一。虽然在迭代器 (list="request.${param.name}List") 中这不是问题,但我无法获得列表大小。我需要做这样的事情:

${param.name} - 参数化部分
${fn:length(request.___List)} - 列表大小

应该使用参数化名称而不是 ___,但我不知道如何按照它的工作方式来表示。

【问题讨论】:

  • ${fn:length(pageContext.request.param.listname)} 应该为您提供列表名称为 listname 的列表的大小。
  • 不,param.name 只是列表名称的一部分,例如 param.name=dogs 计算长度的列表将是 dogsList
  • 使用地图并将所有列表放在那里,然后作为参数键引用它。

标签: jsp struts jstl


【解决方案1】:

我最终将列表大小作为另一个参数传递,就像在 C 风格的数组操作函数中一样。

【讨论】:

    【解决方案2】:

    您可以为列表名称创建一个变量,然后使用大括号表示法(请参阅https://stackoverflow.com/tags/el/info

    <c:set var="myList" value="${param.name}List"/>
    ${fn:length(request[myList])}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 2020-05-16
      • 2020-10-31
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多