Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 类的每个Arraylist的JSTL_Jsp_Aem - Fatal编程技术网

Jsp 类的每个Arraylist的JSTL

Jsp 类的每个Arraylist的JSTL,jsp,aem,Jsp,Aem,对组件对象使用Adobe CQ 5.5和JSP。在JSTL中返回结果时遇到一些问题 我有一个自定义类的数组 private static class Asset { private String displayname; public Asset(){ } public String getDisplayName() { return displayname; } public void setDisplayName(String disp

对组件对象使用Adobe CQ 5.5和JSP。在JSTL中返回结果时遇到一些问题

我有一个自定义类的数组

private static class Asset {

   private String displayname;

   public Asset(){
   }

   public String getDisplayName() {
      return displayname;
   }

   public void setDisplayName(String displayname) {
       this.displayname = displayname;
   }

}
这个片段可以工作,但我想使用JSTL

  for (int i = 0; i < assets.size(); i++) {
      Asset c = assets.get(i);                        
      out.println(c.displayname + "<BR>");    
  }

当使用JSTL时,属性名是基于getter方法名而不是私有字段名来解析的

因此,当您使用
${item.displayname}
时,它将搜索方法
getDisplayname()
,而不是
getDisplayname()

如下图所示更改JSTL

<c:forEach items="${assetList}" var="item" varStatus="status">
   <p>Title:</p> 
   ${item.displayName}
</c:forEach>

请不要同时更改这两个属性。

使用JSTL时,将根据getter方法名称而不是专用字段名称解析属性名称

因此,当您使用
${item.displayname}
时,它将搜索方法
getDisplayname()
,而不是
getDisplayname()

如下图所示更改JSTL

<c:forEach items="${assetList}" var="item" varStatus="status">
   <p>Title:</p> 
   ${item.displayName}
</c:forEach>

请不要同时更改两者。

问题可能是由于该类是私有的。你到底为什么要在JSP中定义类和使用Java代码?我把它从私有改为公共。。。我仍在犯那个错误。不幸的是,这是我的访问级别。因为您使用了错误的命名约定“displayname”,所以应该将其用作displayname。问题可能是由于该类是私有的。你到底为什么要在JSP中定义类和使用Java代码?我把它从私有改为公共。。。我仍在犯那个错误。不幸的是,这是我的访问级别。因为您使用了错误的命名约定“displayname”,所以应该将其用作displayname。
<c:forEach items="${assetList}" var="item" varStatus="status">
   <p>Title:</p> 
   ${item.displayName}
</c:forEach>
   public String getDisplayname() {
      return displayname;
   }