我正在使用Spring类FreeMarkerConfigurationFactoryBean来检索FreeMarker模板.我希望缓存这些模板,但似乎没有任何方法可以指示此行为是必需的.
相比之下,Spring模块提供了一个CachingTemplateResolver,它提供了模板缓存,但是可以在不使用Spring模块的情况下实现这一点,即使用FreeMarkerConfigurationFactoryBean吗?
干杯,唐
${date?string('yyyy-MM-dd')}
Run Code Online (Sandbox Code Playgroud)
如果date为null,则freemarker将引发异常
这是一个解决方案
<#if date??>${date?string('yyyy-MM-dd')}</#if>
Run Code Online (Sandbox Code Playgroud)
但这段代码很难看,有什么快捷方式 ${date!}吗?
我正在开发一个POC,我需要创建一个与JSP相当的freemarker ftl.目的是找出创建jsp等效ftl文件是多么容易.我在jsp文件中遇到了一些scriptlet,并且不确定在ftl中的代码中应该采用哪种方法来编写相同的脚本.我应该创建支持scriptlet代码的标签..但是为每个scriptlet编写标签会过于昂贵(可能我在这里完全错了).我被困在这里.你能告诉我在sriptlet中编写相同代码的最佳方法吗?
谢谢,Hanumant.
码:
<@spring.formInput 'myForm.spouseEmail' 'id="spouseEmail" class="text"'/>
<@spring.showErrors ', ' 'error'/>
Run Code Online (Sandbox Code Playgroud)
输出:
<span class="error">not a well-formed email address</span>
Run Code Online (Sandbox Code Playgroud)
我想要的是:
<div class="error">not a well-formed email address</div>
Run Code Online (Sandbox Code Playgroud) p - is request parameter where the page number is given by user
<#assign totalPages =searchResult.getTotalPages()>
<#assign lastPage = 0>
<#list totalPages as curPage>
<#if p=curPage>
<a href="#" class="selected">${p}</a>
<#assign lastPage = curPage?number>
<#else>
<a href="/search.html?q=${q?html}&p=${curPage}">${curPage}</a>
</#if>
</#list>
Run Code Online (Sandbox Code Playgroud)
这将打印这样的链接
1 2 3 4 5 6 7 8 9 10 11 - and the list keeps going to the last page lets say 100
Run Code Online (Sandbox Code Playgroud)
我想要完成的是这些情况(数字输入<x>是用户选择的p页面):
Case A:
1 <2> 3 4 5 ... 100
Case B:
1 ... 11 …Run Code Online (Sandbox Code Playgroud) 我正在寻找速度最快,最可靠的java模板引擎.是否有微秒级模板引擎的基准测试?
我找到了引擎:http : //code.google.com/p/mist4j/wiki/USAGE http://lazyj.sourceforge.net/
Scrpting语言模板基准测试http://www.kuwata-lab.com/tenjin/ 那里速度糟透了.
我也对发现的引擎和freemarker以及StringTemplate引擎的能力比较感兴趣.
在freemarker中,如何确定特定值是否为数字.是否有任何特定的方法来检查给定值是否为freemarker中的数字?
<#if (link_data.canonical)!?matches(".*/sites/.*") && (pageData.ar.gP)?has_content >
<#if (pageData.ar.gP)?is_number >
<link rel="author" href="https://plus.google.com/${(pageData.ar.gP)!}" />
<#else>
<link rel="ar" href="https://plus.google.com/+${(pageData.ar.gP)!}" />
</#if>
</#if>
Run Code Online (Sandbox Code Playgroud)
上面的代码对我不起作用.
如何在freemarker中连接字符串?
这行不通。
<#function foo input>
<#local str="Hello ">
${str} = ${str} + ${" world"}
<#return str>
</#function>
${foo("a")}
Run Code Online (Sandbox Code Playgroud)
这是在线评估者:http :
//freemarker-online.kenshoo.com/
编辑:为了清楚起见,我需要将其与变量一起使用,以便能够编写类似这样的内容。
public String sayHello() {return "Hello";}
public String sayWorld() {return "world"};
public String sayPeople() {return "people";}
public void main() {
String str = "";
str += sayHello();
str += "";
str += sayWorld();
str += "";
str += sayPeople();
return str;
}
Run Code Online (Sandbox Code Playgroud) 我有这样的情况。我有文件夹a,里面有a.ftl文件夹b。文件夹内b有b.ftl。在b.ftl我有[#macro macroName param1]...[/#macro]如何从文件调用宏a?我有intellij想法警告。我看到了此链接https://intellij-support.jetbrains.com/hc/en-us/community/posts/206196939-Getting-Intellij-to-pick-up-Freemarker-macros,所以我尝试放置
[#-- @implicitly included --]
[#-- @ftlroot "" --]
Run Code Online (Sandbox Code Playgroud)
到顶部,a.ftl但不起作用。我正在研究freemarker文档http://freemarker.org/docs/ref_directive_macro.html,但是有一个示例,仅从同一文件调用宏。
例如。字符串可以具有这些值,例如“ value”,“”或null。
<#if str?? && str?has_content>
${str}
</#if>
Run Code Online (Sandbox Code Playgroud)
如果语句未使用TemplateModel,我可以检查freemarker中的??(空)和?has_content(空不为null)这两个值吗?
freemarker ×10
java ×3
templates ×2
algorithm ×1
benchmarking ×1
caching ×1
jsp ×1
pagination ×1
scriptlet ×1
spring ×1
spring-mvc ×1
validation ×1