当前位置: 首页 > 面试题库 >

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

吉鸿宝
2023-03-14
问题内容

为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参数/用户输入。

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


问题答案:

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

  • apache
  • SiteMesh

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



 类似资料:
  • 模板引擎适合于动态 HTML 页面输出或者代码生成,在Web开发中是常见的 装备。 Blade内置了简单的模板引擎,为了应付网页渲染和简单的数据传输。在日常开发中, 我们通常使用一些优秀的、高效的、功能较为完善的模板引擎,诸如 Velocity、Freemarker、JetbrickTemplate 等等。 Blade支持扩展任意一款模板引擎,同时也有多个实现了,在 这里,也欢迎你贡献代码。 默认

  • CabalPHP的模板引擎是 league/plates,相关语法请参考 plates 的文档。 获取模板引擎 要使用 plates 请先修改 usr/boot.php,取消 Boot 类中的 use Cabal\Core\Http\Server\HasPlates 注释: class Boot extends Cabal\Core\Application\Boot { //...

  • 这是我在PHP中的JSON构建代码,它在没有compositeTemplate部分的情况下工作,但是只要我添加了这个部分,就会出现一个错误。 信封不完整。一个完整的信封需要文档、收件人、标签和主题行。

  • 本文向大家介绍Drupal 6视图模板,包括了Drupal 6视图模板的使用技巧和注意事项,需要的朋友参考一下 不一定总是需要重写Drupal视图的输出,但是弄清楚如何处理可用的模板可能非常有用。但是,这也不时是一个绊脚石,特别是对于新来者。创建视图后,您将具有多个过滤器以限制数据,并具有一组由Views使用一组模板打印的字段。这些模板的使用方式取决于您使用的视图数据类型和选择的样式,但是视图中将

  • 英文原文:http://emberjs.com/guides/views/inserting-views-in-templates/ 到目前为止,我们已经讨论了如何为单独的视图编写模板。然而,随着应用开发的深入,为了封装页面上的不同区域,你可能会经常需要创建一个层次化的视图结构。每个视图负责处理事件和维护需要显示的属性。 {{view}} 为了将一个子视图添加到父视图中,可以使用{{view}}助

  • 我有Gammer模型,即用户扩展和竞争模型。很多用户可以参加一场比赛,而一场比赛可以有很多用户(很多) 插件管理。py: 管理员可以查看球员比赛(用户)或为他们分配能力 现在我希望玩家(用户)可以注册比赛(选择比赛)。我如何继续?

  • 本文向大家介绍python Web flask 视图内容和模板实现代码,包括了python Web flask 视图内容和模板实现代码的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了python Web flask 视图内容和模板实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本使用 session的存储依赖于cookie,

  • 我正在寻找一种方法,为jsp页面创建一个模板,与Java中的genereic类的行为类似? 我现在拥有的内容:在我的视图文件夹(web-inf/view/jsp)中,我拥有一个目录列表,其中包含相同的四个文件,这些文件带有他的函数的接收名称(比如,new item、change item、remove item、list)。 在每个组中,jsp页面保存来自我的项目中的一个特定实体类的ou读取数据。