【问题标题】:unable to retrive list inside list in JSTL无法在 JSTL 中的列表中检索列表
【发布时间】:2014-03-28 04:35:07
【问题描述】:

我无法从 JSTL 检索列表数据 这是我的豆子

public class ProjectData {
    public List <String> srNumbers;
    public String comments;

    public String getComments() {
        return comments;
        }
    public List<String> getSrNumbers() {
        return srNumbers;
        }
    }

这是我的html片段

<c:forEach items="${projectDataList}" var="projectDataList">
    <c:forEach items="${projectDataList.srNumbers}" var="srNumbers">
        <c:out value="${srNumbers}" />, 
    </c:forEach>
</c:forEach>

下面是我在 servlet 中设置的内容

request.setAttribute("projectDataList", projectDataList);

预期的输出如下所示

    sr1,sr2,sr3

已经定义了setter

【问题讨论】:

  • ProjectData中的列表有getter和setter吗?
  • 实际输出 /error 是什么? @Rohit 只是吸气剂就足够了
  • 为什么c:out标签后面有一个comma
  • @Octopus: 输出必须为sr1,sr2,sr3
  • 给出更多ProjectData类的代码

标签: java html jsp servlets jstl


【解决方案1】:

这可能有效:

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

<c:forEach items="${projectDataList}" var="projectDataList">
    ${fn:join(projectDataList.srNumbers.toArray(), ',')}
</c:forEach>

这避免了当前代码会产生的“悬挂”逗号。不确定.toArray() 部分,因为我没有测试代码,但另一种方法可能是简单地向您的ProjectData 类添加另一种方法,例如:

import  org.apache.commons.lang.StringUtils;

public class ProjectData {
    public List <String> srNumbers;
    public String comments;

    public String getSrNumbersJoined() {
        return StringUtils.join(srNumbers, ",");
    }
}

【讨论】:

  • 第一部分对我不起作用,但后来起作用了。谢谢
猜你喜欢
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 2014-12-14
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多