2008-09-25 28 views
1

我在Tomcat中有一堆JSP文件和後端。我有3個不同版本的JSP,內部具有相同的邏輯,但具有不同的佈局。所以如果我改變一些邏輯,我有三個JSP文件要修復。JSP應用程序中的不同佈局和i18n

這種情況下適當的營養是什麼?我想到了一些XML和XSLT堆棧:後端只提供XML格式的數據,而不是每個佈局我都有XSLT,這有一定的魔力。

想象一下,您需要在JSP中以各種語言提供stackoverflow。邏輯相同,但佈局不同。

你能指點我一些方向嗎?

回答

1

瞭解MVC(模型視圖控制器)和JSP應該是View的一部分並且不應該包含任何邏輯的想法。邏輯屬於Model類。

1

這通常通過使用一些模板引擎解決 - 您創建較小的頁面片段,然後向模板引擎聲明某些視圖應該由這些部分組成,並以某種方式放在一起。 Struts tiles是Java世界中的經典示例,但與Java和其他語言中更現代化的framworks相比,Struts tiles實際上已變得老舊笨拙。掛毯和Wicket是兩個更現代的(雖然沒有使用它們)。

只有3將整個Web框架的網頁可能是矯枉過正,雖然,但如果你的網站成長...

1

隨着老式JSP沒有任何種類的fameworks的:

1) 使用控制器做加工並只使用JSP來顯示數據

2) 用JSP包括指令來包括標題,導航,菜單,頁腳以及其他必要的公共/共享元素所有這些佈局。

或/和:

使用在web.xml

<jsp-property-group> 
     <url-pattern>/customers/*</url-pattern> 
     <include-prelude>/shared/layout/_layout_customers_top.jsp</include-prelude> 
     <include-coda>/shared/layout/_layout_customers_bottom.jsp</include-coda> 
    </jsp-property-group> 

URL模式確定哪個JSPS得到以下哪個JSP片段連接至頂部/底部(on Rails的諧音在紅寶石)。

0

這是一個非常經典的問題領域,那裏有很多想要處理這個問題的概念和框架(MVC框架如Struts和JSF,SessionBeans等等)。因爲我懷疑你不是真正的Java企業「傳道者」,我會給你2個簡單的建議。

  1. 在JSP中,你顯然有很多冗餘代碼。將此代碼解壓縮爲「真實的」Java類,並將它們用於所有的JSP。這樣,您將能夠在一個地方修改業務邏輯,並且冗餘不會成爲問題。

  2. 看看層疊樣式表(CSS)。這是佈局網頁的最先進的方式。如果您的html + CSS設計良好,您甚至可能不需要針對不同佈局的不同JSP。

Regards