【问题标题】:How to retrieve a list of Java objects into a jsp file [duplicate]如何将Java对象列表检索到jsp文件中[重复]
【发布时间】:2021-12-08 20:44:19
【问题描述】:

我正在处理一个 java-jsp 项目,并且我有一个要在 jsp 页面中显示的 java 对象列表。包含这些对象列表的 java 行如下:

private List<String> derivedNames;
private List<DiffResponse> diffResponses;
private List<String> pRResults;

DiffResponse 类是这样的:

private String path;
private List<DiffOutput> diffOutputList;
private boolean isConflict;

在 jsp 文件中,当我 console.log diffOutput 时,它返回纯 java 对象,如下所述,而不显示里面的内容。

org.example.rs.umt.DiffOutput@4d9d8911, 
org.example.rs.umt.DiffOutput@3cc6fff7, 
org.example.rs.umt.DiffOutput@311bce65, 
org.example.rs.umt.DiffOutput@7611bf66, 
org.example.rs.umt.DiffOutput@57e575b4, 
org.example.rs.umt.DiffOutput@5c5711f8,

下面是获取数据的jsp代码:

<c:forEach items="${results.diffResponses}" var="diffResponse">
      var distributionPath = '<c:out value="${diffResponse.distributionPath}"/>'
      console.log("Dist: ",distributionPath);
      var diffOutputList = '<c:out value="${diffResponse.diffOutputList}"/>'
      console.log(diffOutputList);
</c:forEach>

这里按预期得到distributionPath

【问题讨论】:

  • 我猜 DiffOutput 不会覆盖 toString() 方法,因此您不会获得所需的输出。只需覆盖 toString() 并记录您想要的信息。

标签: java jsp jstl


【解决方案1】:

您的diffOutputList 本身就是一个列表。所以你必须像这样嵌套&lt;c:forEach&gt;

 <c:forEach items="${results.diffResponses}" var="diffResponse">
      var distributionPath = '<c:out value="${diffResponse.distributionPath}"/>'
      console.log("Dist: ",distributionPath);
      <c:forEach items="${diffResponse.diffOutputList}" var="diffOutput">
           var diffOutput = '<c:out value="${diffOutput.???}"/>'
           console.log(diffOutput);
      </c:forEach>
</c:forEach>

所以如果包含 ???在代码中。在那里你必须设置一个存在于类 DiffOutput 中的字段。

另一种方法是覆盖类 DiffOutput 中的 .toString() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2015-06-08
    相关资源
    最近更新 更多