gpt4 book ai didi

java - 在 JSP 中无法获取 ArrayList 的正确大小

转载 作者:行者123 更新时间:2023-12-02 00:56:01 25 4
gpt4 key购买 nike

我在获取 ArrayList 中正确数量的元素时遇到问题 alt在下面的 JSP 页面中。当我查看 JSP 时,它显示大小是 1 ( <%=alt.size()%> ),而它应该是 3;我想我将该方法添加到生成器类中的数组中,所以我不明白为什么它显示 1。

这是我的jsp页面:

<%
ArrayList<Alert> a = AlertGenerator.getAlert();
pageContext.setAttribute("alt", a);
%>
<c:forEach var="alert" items="${alt}" varStatus="status" >
<p>You have <%=alt.size()%> Active Alert(s)</p>
<ul>
<li><a href="#" class="linkthree">${alert.alert1}</a></li>
<li><a href="#" class="linkthree">${alert.alert2}</a></li>
<li><a href="#" class="linkthree">${alert.alert3}</a></li>
</ul>
</c:forEach>

这是生成警报的类:

package com.cg.mock;

import java.util.ArrayList;

public class AlertGenerator {

public static ArrayList<Alert> getAlert() {

ArrayList<Alert> alt = new ArrayList<Alert>();

alt.add(new Alert("alert1","alert2","alert3"));

return alt;
}

}

这是我的 Bean 类:

package com.cg.mock;

public class Alert {
String alert1;
String alert2;
String alert3;
public Alert(String alert1, String alert2,String alert3) {
super();
this.alert1 = alert1;
this.alert2 = alert2;
this.alert3 = alert3;
}
public String getAlert1() {
return alert1;
}
public void setAlert1(String alert1) {
this.alert1 = alert1;
}
public String getAlert2() {
return alert2;
}
public void setAlert2(String alert2) {
this.alert2 = alert2;
}
public String getAlert3() {
return alert3;
}
public void setAlert3(String alert3) {
this.alert3 = alert3;
}

}

最佳答案

问题是您的 ArrayList 中只有一个 Alert 实例,但该单个 Alert 有 3 个属性:alert1、alert2 和alert3。

看一下这一行:

alt.add(new Alert("alert1","alert2","alert3"));

您只有一个添加行,并且它不在循环中。

可能的解决方案:

public class Alert {
private String description;
private String status;
private Date raisedOn;
public Alert(String description, String status) {
this.description = description;
this.status = status;
this.raisedOn = new Date();
}
public String getDescription() { return description; }
public String getStatus() { return status; }
public Date getRaisedOn() { return raisedOn; }
}


....
alt.add(new Alert("Disk Almost Full", "Warning"));
alt.add(new Alert("Disk Full", "Severe"));
...

...
<table>
<tr><th>Description</th><th>Status</th><th>Raised</th></td>
<c:forEach var="alert" items="${alt}">
<tr>
<td><c:out value="${alert.description}"/></td>
<td><c:out value="${alert.status}"/></td>
<td><c:out value="${alert.raisedOn}"/></td>
</tr>
</c:forEach>
</table>

关于java - 在 JSP 中无法获取 ArrayList 的正确大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com