当我从后端收到一些数据时,例如数据字符串“AbcDef”,freemarker是否有一些内置函数可以将字符串解析为“ABC_DEF”?我该如何使用 freemarker 模板语言?
最佳答案
像这样:
<#function camelToDashed(s)>
<#return s
<#-- "fooBar" to "foo_bar": -->
?replace('([a-z])([A-Z])', '$1_$2', 'r')
<#-- "FOOBar" to "FOO_Bar": -->
?replace('([A-Z])([A-Z][a-z])', '$1_$2', 'r')
<#-- All of those to "FOO_BAR": -->
?upper_case
>
</#function>
${camelToDashed('AbcDef')}
当然,也可以在没有#function
的情况下完成,只是这样更容易重用它。
关于FreeMarker仅将Camel格式解析为Underline格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19422943/