JSP 与 FreeMarker [关闭]

Posted

技术标签:

【中文标题】JSP 与 FreeMarker [关闭]【英文标题】:JSP vs FreeMarker [closed] 【发布时间】:2011-07-30 09:43:36 【问题描述】:

JSP 是否提供了比 FreeMarker 更大的灵活性,还是其他方式? 我的后端涉及 Servlet。 什么情况下使用哪一种?

【问题讨论】:

另见***.com/questions/3447368/freemarker-or-jsp 【参考方案1】:

我的答案肯定是使用 Freemarker。 原因是使用方面的灵活性。

    它不需要 servlet 容器,因此您也可以呈现电子邮件或任何基于文本的内容。

    在 Web 应用程序中,可以将 Web 模块创建为 jar。 Freemarker 模板可以很容易地从类路径加载(此外,spring 可以从类路径加载 css/js - 静态内容 - 带有 mvc:resources 标签并扫描控制器)。因此,Web 模块可以包含自己的模板、静态数据和控制器。

    Freemarker 在创建自定义标签方面更强大,jsp 让它变得很痛苦。此外,自定义标签允许回调参数化的主体,而这在 JSP 中将无法做到。

    通过 Freemarker,您仍然可以毫无问题地使用每个可用的 JSP 标记库 :)

【讨论】:

【参考方案2】:

我相信您现在已经选择了其中一个选项。无论如何,评论可能对其他人仍然有用。 正如 WhiteFang 所写,使用 MVC 是唯一强烈推荐的建议。

如果您的应用程序是基于 Web 的应用程序,那么 JSP 很可能是一个更好的选择,因为它更广为人知,并且可以使用 JSTL 编写非常干净的演示代码(只要确保您不混入 scriptlet ...数据应该在 servlet 中准备好并作为属性传递给 JSP)。选择 JSP,您可以让管理人员在需要时轻松插入其他开发人员以加快交付速度等,从而为项目带来价值。

无论如何,既然你已经在 FreeMarker 上拥有它,如果模板看起来还不错,我不会更改它。而是等待当您有商业理由转换时。无论应用程序设计得如何,最终都需要对其进行部分甚至完全重新架构。只要您进行模块化编程,并将转换保持在一个独立的模块中,您就可以随时轻松切换到您认为合适的任何技术(可能是一种新的,比 FreeMarker 或 JSP 更好:))。

我通常将 FreeMarker 用于非 Web 应用程序。甚至在网络应用程序中,当我需要生成通知电子邮件时,不需要启用网络。否则,到目前为止 JSP 工作得很好。

史蒂夫。

【讨论】:

【参考方案3】:

如果您选择使用 JSP,则可以使用 JSP 周围的几个库,例如 JSTL、DisplayTag 等。有了 Freemarker,它们就没有那么多了。

JSP 是为网页量身定做的,FTL 是一种更通用的模板语言——它可以用来生成 html、纯文本、电子邮件等。

要选择一个,您必须考虑您拥有什么样的工具。所有优秀的 Java IDE 都具有出色的 JSP 支持。 FTL 支持可能/可能不会那么好。

【讨论】:

你也可以将任何taglib导入freemarker。【参考方案4】:

JSP 将让您在视图层中做更多的事情,因此您可能会说这使其更加灵活。不过,您可能不应该做的事情,可以说是对 FreeMarker 的好处。它可以让您更好地控制视图层可以做什么,并强制更好地分离关注点。

这里没有真正的正确答案。你可以在技术上为你的 UI 完成任何事情。如果没有有关您的项目的更多详细信息,很难提出建议。关于我唯一能说的就是你可能应该使用MVC 模式。两者都可以完成。

【讨论】:

感谢您的回答。我有使用 Servlet 的旧代码,并且不完全基于 MVC 架构。我想将其转换为 MVC。唯一阻碍我的是,Freemarker 的语法非常严格。当前的代码库正在使用 Freemarker 模板。我正在尝试将它们移至 JSP,但不确定这是否是个好主意。让我知道你的 cmets。

以上是关于JSP 与 FreeMarker [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

简介JSP与FreeMarker及Volicity区别

Spring配置freemarker与jsp多视图解析

Free 基础概念

FreeMarker标签与使用

速度与 FreeMarker [关闭]

Freemarker 取代 JSP?