Jsp 类的每个Arraylist的JSTL
对组件对象使用Adobe CQ 5.5和JSP。在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
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;
}