2014-04-29 87 views
1

我是Spring的新手,並且有一個與Spring 3 MVC控制器類有關的基本問題。Spring 3.x MVC控制器:將屬性添加到請求/會話

我在我的控制器有此以下方法:

@RequestMapping("/index") 
public String listContacts(Map<String, Object> map) { 
    map.put("contacts", new EmployeeForm()); 
    map.put("contactList", employeeService.listEmployee()); 
    return "contacts"; 
} 

在JSP文件,我一個使用此下面的代碼段訪問contactList

<c:forEach items="${contactList}" var="contact"> 
<tr> 
    <td>${contact.lastname}, ${contact.firstname} </td> 
    <td>${contact.email}</td> 
    <td>${contact.telephone}</td> 
    <td><a href="delete/${contact.id}">delete</a></td> 
</tr> 
</c:forEach> 

我的困惑:

我還沒有添加contactList在我的控制器類中的會話或請求屬性,那麼如何m我能夠使用${contactList}訪問JSP文件中的相同內容嗎?

請說明。

回答

4

您在控制器處理程序方法中擁有的參數Map可有效用作模型屬性的映射。

在呈現視圖之前,(通常)將模型屬性添加爲HttpServletRequest屬性。

這在文檔here中有解釋。

以下是所支持的方法的參數:

  • java.util.Map/org.springframework.ui.Model/ org.springframework.ui.ModelMap用於充實 暴露於幅視圖中的隱式模型。
+0

@ user182944哪部分?您添加到「Map」的任何內容都將作爲請求屬性添加。 –

1

春天是爲您提供一個地圖,或基本視圖模型,你可以在你的控制器處理方法填充。在您的處理程序完成後,Spring會將添加到Map中的任何內容添加到jsp上下文,以便它們可以作爲正常的上下文變量進行訪問。我相信這些變量被添加到JSP請求訪問的'request'範圍中,但我不確定,因爲它可能是'page'範圍。

因爲處理程序和視圖呈現正在由同一個請求處理(由Spring管理),所以不需要在會話中存儲任何模型信息。

相關問題