freemarker - 字符串比较 - 不允许运算符

时间:2015-04-27 10:21:00

标签: java freemarker string-comparison

我想比较两个字符串来决定第一个字符串是否更小'比第二个字符串。

<#if name1 <= name2>
....
</#if>

错误:

Can't use operator "<=" on string values.

可以在FreeMarker中完成吗?是否可以在模板中调用String.compareTo方法?

2 个答案:

答案 0 :(得分:2)

如果您的意思是长度,则可以使用内置的length,例如:

<#if string?length gt 0>

如果你想使用自定义比较而你正在使用Struts2,你可以简单地为它调用一个动作方法,让我们假设你有一个比较方法:

public boolean compare(String str1, String str2) { ... }

然后你可以这样做:

<#if action.compare(str1, str2) gt 0>

答案 1 :(得分:0)

在FreeMarker中,您可以使用==来比较Strings,但根据<=的含义,您可以使用BuiltIn for strings来比较lenghtcontent,或者你需要的东西。

更新:您没有Stringcompare lexicographically FreeMarker的内置方法,因此您有2个选项:

  1. 创建自己的方法,将Stringsbuilt-in函数进行比较,迭代字符串并按字符比较char。
  2. 创建一个Java比较为@meskobalazs建议