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

han*_*ant 2 java jsp freemarker scriptlet

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

谢谢,Hanumant.

Lau*_*eyn 6

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

如果您绝对需要将JSP scriptlet转换为FreeMarker模板,则应首先检查scriptlet实际执行的操作.其中一些可能被等效的宏取代; 例如:

<% if (x < 3) { %>
Run Code Online (Sandbox Code Playgroud)

很容易被替换为:

<#if (x < 3)>
Run Code Online (Sandbox Code Playgroud)

你明白了.

其余的scriptlet可以被自定义的FreeMarker宏取代,但你应该问自己这个问题:我的模板中是不是做得太多了?

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