You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7.0下能否用Velocity设置Web内容content字段并实现日期切换?

没问题,这两个需求在Liferay 7.0里都能用Velocity脚本搞定,我给你一步步说清楚:

1. 能否用Velocity设置基础Web内容的content字段?

当然可以。在Liferay 7.0中,基础Web内容的模板支持Velocity语言,你可以在Web内容的Velocity模板里直接操作content字段——要么是基于原有content字段做逻辑处理,要么直接通过模板动态生成内容来替换它的展示。

需要注意的是,这里的操作是在Web内容模板渲染层面实现的,不是直接修改数据库里的原始content字段值,而是在前端展示时通过模板逻辑输出最终内容。

2. 实现日期切换展示的Velocity脚本

这个需求完全可以实现,核心是利用Liferay提供的$dateTool工具类来做日期比较。下面是直接可用的代码示例:

#set($targetDate = $dateTool.parse("2018-04-05", "yyyy-MM-dd"))
#set($currentDate = $dateTool.toDate())

#if($dateTool.compare($currentDate, $targetDate) <= 0)
    Hello world
#else
    Hola Mundo
#end

代码说明:

  • $dateTool是Liferay内置的Velocity工具,专门用来处理日期解析、比较等操作
  • parse方法把字符串格式的目标日期转换成可比较的Date对象,第二个参数是日期的格式(要和字符串日期匹配)
  • compare方法的返回值规则:返回-1表示当前日期早于目标日期,0表示两者日期相同,1表示当前日期晚于目标日期
  • 根据比较结果,我们就能输出对应的内容

如果你的需求不是基于当前系统日期,而是基于Web内容自身的某个日期字段(比如发布日期、自定义日期字段),只需要把$currentDate替换成对应的字段即可。比如要基于Web内容的发布日期判断,可以写成:

#set($targetDate = $dateTool.parse("2018-04-05", "yyyy-MM-dd"))
#set($articleDate = $article.getDisplayDate())

#if($dateTool.compare($articleDate, $targetDate) <= 0)
    Hello world
#else
    Hola Mundo
#end

内容的提问来源于stack exchange,提问作者ekxz900

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:15:33