2013-04-08 41 views

回答

11

@RequestMapping允許你指定模式(編輯,視圖等)和許多其他選項(雖然不是窗口狀態)。 @RenderMapping允許您僅指定請求參數和窗口狀態(MAXIMIZED,NORMAL等),並且是指示渲染請求映射的便捷方式。你可以在同一個類上使用兩個註釋。例如,您可以在類級別使用RequestMapping進行註釋,以指示它爲VIEW模式提供請求,然後在方法級別使用@RenderMapping(或@ActionMapping@ResourceMapping)爲特定請求註釋處理程序。

現在說說不同類型的請求可能很有幫助。

渲染請求用於渲染HTML,所以通常您會顯示一個JSP或其他類型的視圖。

動作請求用於執行操作,如修改數據,上傳文件等。重要的是要注意每個操作請求後面都有一個呈現請求。因此,如果您的頁面上有兩個portlet,並且您向portlet發出了一個操作請求,那麼會收到一個操作請求,然後是一個呈現請求。 Portlet 2只會收到一個呈現請求。

還有另一種類型的請求,你不提這也是感興趣的可用於

資源請求來渲染其他內容類型。 AJAX是資源請求的常見用例,因爲它們適用於返回JSON或XML。

事件請求也存在,可以用於Portlet間的通信。我可以推薦Spring portlet docs。儘管它們沒有很好地包含註釋,但它們確實解釋了不同的請求類型,您應該能夠使用該信息來計算註釋。

注:如果您願意,您可以使用@RequestMapping來定義渲染,動作和資源請求,但@RenderMapping@ActionMapping@ResourceMapping提供了更方便的方法。