【问题标题】:How To: jsp scriptlet equivalent code in freemarker如何:freemarker 中的 jsp scriptlet 等效代码
【发布时间】:2011-08-05 06:12:42
【问题描述】:

我正在开发一个 POC,我需要创建一个与 JSP 等效的 freemarker ftl。目的是找出创建 jsp 等效 ftl 文件的难易程度。我在 jsp 文件中遇到了一些 scriptlet,但不确定我应该采用哪种方法在 ftl 中编写相同的代码。我应该创建支持 scriptlet 代码的标签吗.. 但是为每个 scriptlet 编写标签会太昂贵(可能我在这里完全错了)。我被困在这里。你能告诉我在 sriptlet 中编写相同代码的最佳方法吗?

谢谢,哈努曼特。

【问题讨论】:

  • freemaker 的全部目的是防止您的代码与您的 html 混合,即它试图帮助您停止在您的 html 中放置“scriptlet”。

标签: java jsp freemarker scriptlet


【解决方案1】:

FreeMarker 和 JSP 之间的主要区别之一正是 FreeMarker 不支持模板中 Java 代码的任意 sn-ps。就涉及到关注点分离而言,这是一件非常好的事情。

如果您绝对需要将 JSP scriptlet 转换为 FreeMarker 模板,您应该首先检查 scriptlet 的实际作用。其中一些可能会被等效的宏替换;例如:

<% if (x < 3) { %>

可以很容易地替换为:

<#if (x < 3)>

你明白了。

剩余的 scriptlet 可以用自定义的 FreeMarker 宏替换,但您应该问自己这个问题:我在模板中做的不是太多吗?

至于编写一个可以包含 Java 代码的通用宏,这将是非常困难的,因为虽然 JSP 实际上是在运行时编译成 Servlet,但 FreeMarker 模板处理不涉及任何 Java 编译。这又是一件好事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2013-05-14
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多