2

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

谢谢,哈努曼特。

4

1 回答 1

6

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

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

<% if (x < 3) { %>

可以很容易地替换为:

<#if (x < 3)>

你明白了。

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

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

于 2011-04-14T08:20:37.113 回答