从Java类传递Arraylist并在Struts 2中的JSP页面中获取它

从Java类传递Arraylist并在Struts 2中的JSP页面中获取它,java,jsp,struts2,ognl,valuestack,Java,Jsp,Struts2,Ognl,Valuestack,我试图在JSP页面中从java类传递ArrayList。但最终我没有成功。这就是我所做的 这是我的POJO课程: public class Coordinates { private double latitude; private double longitude; public double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitu

我试图在JSP页面中从java类传递
ArrayList
。但最终我没有成功。这就是我所做的

这是我的POJO课程:

public class Coordinates {    
private double latitude;
private double longitude;
public double getLatitude() {
    return latitude;
}
public void setLatitude(double latitude) {
    this.latitude = latitude;
}
public double getLongitude() {
    return longitude;
}
public void setLongitude(double longitude) {
    this.longitude = longitude;
}
}
<Table>
<s:iterator value="mylist" status="Status">           
<tr>
<td><s:property  value="%{mylist[#Status.index].latitude}" /></td>
<td><s:property  value="%{mylist[#Status.index].longitude}" /></td>
</tr>
</s:iterator> 
</Table>
这是我编写业务逻辑的Java类:

public class Leverage extends ActionSupport{
List<Coordinates> mylist = new ArrayList<Coordinates>();
public String getMapDetail()throws Exception{
    LevService lev =LevService .getInstance();
    mylist = lev .getCurrentLocation();
    System.out.println("Size of list is: "+mylist.size());
    return SUCCESS;
}
公共类杠杆扩展了ActionSupport{
List mylist=new ArrayList();
公共字符串getMapDetail()引发异常{
LevService lev=LevService.getInstance();
mylist=lev.getCurrentLocation();
System.out.println(“列表的大小为:+mylist.Size());
回归成功;
}
这是我的JSP页面:

public class Coordinates {    
private double latitude;
private double longitude;
public double getLatitude() {
    return latitude;
}
public void setLatitude(double latitude) {
    this.latitude = latitude;
}
public double getLongitude() {
    return longitude;
}
public void setLongitude(double longitude) {
    this.longitude = longitude;
}
}
<Table>
<s:iterator value="mylist" status="Status">           
<tr>
<td><s:property  value="%{mylist[#Status.index].latitude}" /></td>
<td><s:property  value="%{mylist[#Status.index].longitude}" /></td>
</tr>
</s:iterator> 
</Table>


它在控制台中打印
数组列表的大小。但它不创建行。

迭代器标记需要
myList,因此您应该提供一个getter

public List<Coordinates> getMyList() {
    return myList;
}
公共列表getMyList(){
返回myList;
}
应该像您那样初始化此值

private List<Coordinates> myList = new ArrayList<>();
private List myList=new ArrayList();
然后,您不应该在操作中重写它,只需创建一个局部变量或重命名服务返回的变量即可

List<Coordinates> list = lev.getCurrentLocation();
if (list != null && list.size() > 0)
  myList = list;
List List=lev.getCurrentLocation();
if(list!=null&&list.size()>0)
myList=列表;
在JSP中,您可以从迭代器标记中获取值,它会在值堆栈中查找标记体内部引用的所有值。您不需要提供索引表达式来获取值

<table>
<s:iterator value="myList">           
<tr>
<td><s:property value="%{latitude}" /></td>
<td><s:property value="%{longitude}" /></td>
</tr>
</s:iterator> 
</table>