2014-04-04 4 views
0

Java 클래스에서 전달 된 JSP 페이지에서 ArrayList을 얻으려고합니다. 그러나 결국 나는 성공하지 못했습니다. 여기 내가 한 일이있다. 여기 Java 클래스에서 Arraylist를 전달하고 JSP 페이지에서 가져옵니다. Struts 2에서

내 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> 
다음은
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 페이지입니다

인쇄합니다. 콘솔에서 ArrayList의 크기. 그러나 그것은 행을 만들지 않습니다.

답변

0

는 반복자 태그는 myList 기대하고, 그래서 당신은 그런 다음 행동을 무시해서는 안

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

을했던 것처럼 당신은,이 값은 초기화되어야 게터

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

을 제공해야한다 지역 변수를 만들거나 서비스가 반환하는 변수의 이름을 바꿉니다.

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

JSP에서 iterator 태그의 값을 가져올 수 있으며 값 스택에서 태그 본문 내부에서 참조되는 모든 값을 찾습니다. 값을 얻기 위해 색인 된 표현식을 제공 할 필요는 없습니다.

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