讓我剛開始說我對Java Web應用程序是全新的,所以我很抱歉如果這是一個非常基本的問題。如何在不重複代碼的情況下將jsp頁面包含在Java Web應用程序中?
我正在寫一個應用程序,可以讓用戶登錄到一個帳戶。每個頁面的頂部包含類似的信息欄(有點像Gmail中的頂欄):
Logged in as <userid> | Settings | Help
由於這部分將是每個頁面上,這對我來說很有意義,以拆分功能,所以我不重複我的代碼。
我做了一些搜索,發現我可以用這樣的:在另一個JSP的中間
<jsp:include page="userInfoBar.jsp" flush="true" />
。儘管我的userSettings.jsp頁面存在問題,但也從數據庫獲取了一些用戶詳細信息。我不僅在兩個JSP之間複製了一些代碼,但是我有一種感覺,在網頁呈現期間我正在做兩倍的工作。
例如(僞代碼):
userInfoBar.jsp:
user = getCurrentUser
if (user) {
print Logged in as user.userid | Settings | Help
}
userSettings.jsp:
<jsp:include page="userInfoBar.jsp" flush="true" />
user = getCurrentUser
Change settings for user.userid
所以從這個小例子,getCurrentUser被調用兩次(我認爲,除非莫名其妙的Java優化了)。
我該如何避免這種重複的工作,但仍然保持userInfoBar與每個JSP有點分離?
在此先感謝!
Brian
酷 - 我很熟悉,因爲Ruby on Rails和Django的MVC的 - 我只是不知道如何在Java中發生。我正在查找它:) – BrianH 2009-04-21 18:59:27