2011-03-12 81 views
1

我正在用JAVA編寫一個應用程序。需要關於菜單的建議。Servlet輸出到JSP

我不想在每個JSP中複製菜單創建的代碼。

我想創建1個名爲menu.jsp的JSP並在那裏創建菜單,並在需要菜單的位置執行動態包括<jsp:include... >

這很好,直到我有靜態菜單。

現在,如何做到這一點的動態菜單。

我知道從JSP直接連接到DB是一種不好的做法。

所以我想要做的是這樣的:

  • 創建一個servlet
  • 連接到數據庫並獲得菜單項,並顯示順序
  • 上面創建的菜單刷新到一個jsp

所以,我的問題是我如何包括上面的JSP,無論我需要菜單?

回答

0

您可以通過標記<jsp:include>包含servlet輸出。但這是一個不好的做法。請參閱jsp tags而不是

+0

我不想直接包含servlet輸出。可以說我有這樣的網址:/ myapp/menu – user646108 2011-03-12 07:22:00

+0

請忽略上面的註釋。我不想直接包含servlet輸出。 可以說我有這樣的網址:/ myapp/menu。 所以流動是這樣 servlet創建從DB 的servlet刷新動態菜單到一個JSP稱爲引入了menu.jsp 所以我想包括引入了menu.jsp無論我需要的菜單。 可以說我想將它包含在顯示中。jsp 那麼代碼應該是什麼? 請告訴我該怎麼做? – user646108 2011-03-12 07:29:22

1

我認爲您需要的是模板系統。例如嘗試sitemesh。 如果你想真正使用的Java框架,可以幫助您有好的做法,我建議使用grails

+0

+1用於介紹模板系統。以下是模板引擎的列表:http://java-source.net/open-source/template-engines – 2011-03-12 07:29:16

0
  1. 要使用的菜單,應用廣泛的把生成的菜單無論是在會話或應用[當且僅當菜單是同樣爲每一位用戶]

  2. 可以說引入了menu.jsp具有生成菜單的代碼,獲取會話(或應用程序對象),並要求

  3. 進行最後呼籲引入了menu.jsp使用或<%@ include>

0

添加菜單項和一個「renderMenu」布爾值作爲請求屬性。

然後包含menu.jsp並讀取這些屬性 - 如果renderMenu爲false,則不輸出任何內容。如果是這樣 - 繼續渲染項目(由servlet設置)