2012-05-07 94 views
-1

隨着下面的代碼我需要保持包容的加載順序,但我不知道是否有更好的方法,而無需使用這麼多<%%>如何提高語法包含語句

base.jsp語法做到這一點

<% 

List<String> cssFiles = new ArrayList<String>(); 
List<String> jsFiles = new ArrayList<String>(); 

/* 
* Load all CSS/JS files we want on every page 
*/ 

%> 
<%@ include file="includes/jquery.jsp" %> 
<% 

cssFiles.add("/css/global"); 
jsFiles.add("/js/global"); 

%> 
<%@ include file="includes/jquery_ui.jsp" %> 

view.jsp的

<%@ include file="../base.jsp" %> 
<% cssFiles.add("/css/content/view"); %> 
<%@ include file="../header.jsp" %> 

回答

1

一個更好的方法是使用模型 - 視圖 - 控制器模式並將所有代碼移動到控制器中,因此您的JSP首先不會擁有太多的<% %>

+0

這就是我最初的一切設置......但我遇到了問題... ... http://stackoverflow.com/questions/10352472/how-to-reset-values-on-each-page-查看/ 10484709 – Webnet

+0

該問題很容易通過使用Set而不是List來解決,因此集合中的所有元素都是唯一的。 –

+0

不,另一個問題不僅僅是項目是獨一無二的,它是在頁面A上我想要2個css文件,在頁面B上我只需要1個css文件,然後是頁面5我想要5個CSS文件。該方法在頁面更改時沒有從cssFiles數組中刪除數據,只是將其添加到該數組中。 – Webnet

0

現代JSP應用程序中完全不需要使用<% /*foo*/ %>形式的Scriptlet代碼片段。使用表達式語言將數據注入到視圖中,並利用標記庫來顯示邏輯。

使用MVC方法進行開發。開發人員通常利用框架(其中有很多框架)。

至少,請使用servlet as a controller and just utilize the JSP as the view

+0

我還沒有找到在我的應用程序中包含CSS/JS文件的好方法。在JSP中執行此操作是我發現維護對加載順序的控制的唯一方式,並確保只有特定的css/js文件纔會加載到需要的頁面上。 – Webnet