2012-05-07 50 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