JSP与FreeMarker

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

JSP将允许您在视图层中执行更多操作,因此您可以说这使其更加灵活。 你可能不应该做的事情,哪一个可以说是FreeMarker的好处。 它可以让您更好地控制视图层可以执行的操作,并可以更好地分离关注点。

这里没有真正的答案。 从技术上讲,您可以使用UI完成任何事情。 没有关于您的项目的更多细节,很难提出建议。 关于我唯一可以说的是你应该使用MVC模式。 它可以用任何一个来完成。

我的答案绝对是Freemarker。 原因在于使用期限的灵活性。

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

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

  3. Freemarker在创建自定义标签方面更强大,jsp让它变得更加痛苦。 此外,自定义标记允许回调身体参数化,您很难在JSP中真正做到这一点。

  4. 从Freemarker你仍然可以使用每个JSP标记库而没有问题:)

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

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

无论如何,既然你已经在FreeMarker上拥有它,如果模板看起来已经好了,我就不会改变它。 相反,当你有业务原因切换时。 无论应用程序设计得多么好,它最终都需要部分甚至完全重新架构。 只要您进行模块化编程,并在单独的模块中进行转换,您就可以随时轻松切换到您认为合适的任何技术(可能是新的,比FreeMarker或JSP更好:))。

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

燕姿。

如果您选择使用JSP,可以使用几个围绕JSP的库,如JSTL,DisplayTag等。 使用Freemarker,没有那么多。

JSP是为Web页面量身定制的,FTL是一种更通用的模板语言 – 它可用于生成html,纯文本,电子邮件等。

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