一尘不染

JSP模板实现(复合视图模式)

jsp

为Java网站实现“复合视图模式”的最佳方法是什么?

我的想法是采用一个jsp并包含多个页面,例如:

<h1>Layout Start</h1>
<%
Values values = DataHandler.getValues(request);
LayoutHelper layout = values.getLayout();
out.println("Layout.getContent(): " + layout.getContent());
%>

<jsp:include page="<%= layout.getContent() %>" flush="false" />

<h1>Layout End</h1>

但是之后,我在WEB-INF目录中所有小的jsp文件仍然可供用户使用。我如何拒绝访问除一个模板之外的所有.jsp文件。

之后,我需要一个过滤器或Servlet在Values对象中插入路径。

更新 我并不是说可以从文件系统(或Web服务器)访问WEB-
INF,而是可以通过控制器通过Web应用程序从Web应用程序访问,而我当前的布局layout.getcontent()映射到URL参数/用户输入。

什么是处理复合视图模式的常用框架?


阅读 304

收藏
2020-06-10

共1个答案

一尘不染

Pro Java EE和Spring
Patterns
提到了两个支持Composite
View模式的流行框架:

我个人使用Tiles,它像Struts和Spring的魅力一样工作。SiteMesh也依赖于装饰器模式。在Tiles网站上,两种模式的好处之间有很好的比较

2020-06-10