1

我试图进入ArrayList从 java 类传递的 JSP 页面。但最终我没有成功。

这是我所做的:

这是我的 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;
}
}

这是我编写业务逻辑的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;
}

这是我的 JSP 页面:

<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>

ArrayList它在控制台中打印大小。但它不会创建行。

4

1 回答 1

0

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

public List<Coordinates> getMyList() {
    return myList;
}

这个值应该像你一样初始化

private List<Coordinates> myList = new ArrayList<>();

然后您不应该在操作中覆盖它,只需创建一个局部变量或重命名服务返回的变量即可。

List<Coordinates> list = lev.getCurrentLocation();
if (list != null && list.size() > 0)
  myList = list;

在 JSP 中,您可以从迭代器标记中获取值,它会在值堆栈中查找标记主体内引用的所有值。您无需提供索引表达式即可获取值。

<table>
<s:iterator value="myList">           
<tr>
<td><s:property value="%{latitude}" /></td>
<td><s:property value="%{longitude}" /></td>
</tr>
</s:iterator> 
</table>
于 2014-04-04T20:03:41.650 回答