2014-03-25 102 views
0

我是Struts2的新手。我有一個顯示房間列表的JSP頁面(其中房間是用戶定義的類)。我需要將整個列表作爲隱藏字段發送到操作類。 JSP代碼如下:如何將對象列表從jsp發送到struts2動作類?

<form method="GET" action="reporting.action" > 
    <s:hidden name="roomsReport" value="%{allRooms}"/> 
    <s:textfield name="roomsR" value="%{allRooms}"/>      
    <s:submit name="action" style="width:220px;" value="Generate Report for Rooms" /> 
</form> 

(用於測試)的文本框顯示地址列表(這意味着其在JSP頁面NOT NULL) 我仍然無法訪問它在我ReportingAction類使用以下代碼:

System.out.println("xxx"+this.roomsReport.size()); 
System.out.println(this.roomsReport); 

上面的print語句分別給出0和[]。我有以下幾個房間報告的獲取者和安裝者:

private List<Room> roomsReport; 
public List<Room> getRoomsReport() { 
    return roomsReport; 
} 

public void setRoomsReport(List<Room> roomsReport) { 
    this.roomsReport = roomsReport; 
} 

任何人都可以幫忙嗎?

+0

嘗試使用吸氣劑打印的值作爲支柱動作直接在以設置器設置的值 – Divya

+0

亞嘗試使用getRoomsReport()大小(); 仍給予相同的空集。看起來getter甚至不返回null(否則它會給出空指針異常)。他們正在返回一個空集。 – Crusaderpyro

+0

此外,我保持方法爲「GET」,因此我可以看到參數allRooms在URL中發送。只是不能訪問它! – Crusaderpyro

回答

0

最後,我可以使用會話列表傳遞給JSP

列表設置在會話變量在JSP如下:

<s:set name="roomsReport" value="%{allRooms}" scope="session" /> 

在動作類,我可以使用訪問以下代碼:

List<Room> roomsReport = (List<Room>)ActionContext.getContext().getSession().get("roomsReport"); 
+2

如果您將事情放入會話中,請在動作中執行,而不是在視圖中。 –

相關問題