Java 如何:在freemarker中使用jsp scriptlet等效代码

Java 如何:在freemarker中使用jsp scriptlet等效代码,java,jsp,freemarker,scriptlet,Java,Jsp,Freemarker,Scriptlet,我正在一个POC上工作,我需要创建一个相当于JSP的freemarker ftl。目的是了解创建与jsp等效的ftl文件有多容易。我在jsp文件中遇到了一些scriptlet,不确定应该采用哪种方法在ftl中编写相同的代码。我应该创建支持scriptlet代码的标记吗。。但是对于每一个scriptlet来说,编写标签的成本太高了(可能我在这里完全错了)。我被困在这里了。您能告诉我在sriptlet中编写相同代码的最佳方法吗 谢谢你,Hanumat。FreeMarker和JSP之间的一个主要区别就

我正在一个POC上工作,我需要创建一个相当于JSP的freemarker ftl。目的是了解创建与jsp等效的ftl文件有多容易。我在jsp文件中遇到了一些scriptlet,不确定应该采用哪种方法在ftl中编写相同的代码。我应该创建支持scriptlet代码的标记吗。。但是对于每一个scriptlet来说,编写标签的成本太高了(可能我在这里完全错了)。我被困在这里了。您能告诉我在sriptlet中编写相同代码的最佳方法吗


谢谢你,Hanumat。

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

如果您确实需要将JSP脚本转换为FreeMarker模板,那么应该首先检查脚本的实际功能。它们中的一些可能会被它们的等效宏所取代;例如:

<% if (x < 3) { %>

可轻松替换为:

<#if (x < 3)>

你明白了

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


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

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