freemarker截字符串

本文详细介绍了如何使用Freemarker模板语言进行字符串截取与条件判断,包括字符串长度判断、变量比较等常见操作,适用于网页模板开发。

freemarker截取字符串  

2008-02-20 16:58:32|  分类: IT |字号 订阅

<#list list1 as list>         

       <#if (list.title?length>15)>
         ${list.title[0..15]?default("")}
        <#else>
         ${list.title?default("")}
        </#if>      
        </#list>

 

 

如果实际长度没有13那么长的话加多个if

Template Author's Guide/Expressions.

You can nest if directives (of course):

   
 

<#if x == 1>

          x is 1 

<#if y == 1>

          and y is 1 too

 <#else>

           but y is not

  </#if>

   <#else>

             x is not 1

     <#if y < 0>

            and y is less than 0

   </#if>

</#if> 

 
   

Note

How to test if x is greater than 1? <#if x > 1> will be wrong, as FreeMarker will interpret the first > as the end of the tag. Thus, either write <#if (x > 1)> or <#if x &gt; 1>.

转载:http://freemarker.org/docs/ref_directive_if.html


FreeMarker 是一个强大的模板引擎,广泛用于 Java 应用中进行字符串处理和动态内容生成。它提供了多种内建函数来操作字符串,其中 `split` 函数是常用的字符串分割方法之一。 例如,可以使用 `split` 函数将字符串按照指定的分隔符进行拆分,并通过 `<#list>` 标签遍历结果序列: ```ftl <#list "张三三,李思思,,王强,柳树,诸葛正我"?split(",") as name> "${name}" </#list> ``` 上述代码会将原始字符串按照逗号 `,` 分割,并输出每个名字。需要注意的是,如果字符串中包含连续的分隔符(如两个连续的逗号),那么在分割时会产生空字符串元素 [^2]。 除了 `split` 函数外,FreeMarker 还支持其他字符串处理函数,例如 `trim` 用于去除字符串两端的空白字符,`lower_case` 和 `upper_case` 用于转换大小写,以及 `replace` 用于替换特定子串等。 以下是一个使用 `replace` 的示例,将字符串中的逗号替换为竖线符号 `|`: ```ftl ${"张三三,李思思,王强,柳树"?replace(",", "|")} ``` 这将输出 `"张三三|李思思|王强|柳树"`。 对于更复杂的字符串处理需求,可以结合多个函数进行链式调用。例如,先对字符串进行替换,然后进行分割: ```ftl <#list "AhuAjiuAjkdsfAoionAjiuiAnujkkdfAkoijAmcjdhfjdfaAdhnfjdhfA"?split("A") as num> "${num}" </#list> ``` 此代码会将字符串按照字母 `A` 拆分,并输出每个子串 。 此外,在某些情况下,可能需要将数组或集合转换为字符串,或者将字符串转换为数组形式进行逐项处理。虽然 FreeMarker 原生不直接支持数组类型,但可以通过序列化方式实现类似功能。例如,将字符串分割后的结果存储在一个变量中,以便后续多次引用: ```ftl <#assign names = "张三三,李思思,,王强,柳树,诸葛正我"?split(",")> <#list names as name> ${name} </#list> ``` 这样可以更灵活地控制数据流并减少重复计算 [^3]。 ### 相关问题 1. 如何在 FreeMarker 中实现字符串截取? 2. FreeMarker 中如何判断字符串是否包含某个子串? 3. 在 FreeMarker 模板中如何对字符串进行格式化? 4. 如何在 FreeMarker 中将字符串转换为大写或小写? 5. FreeMarker 支持哪些其他的字符串处理函数?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值