gpt4 book ai didi

java - 将一个月添加到 Velocity 模板中的日期

转载 作者:行者123 更新时间:2023-11-30 07:13:56 24 4
gpt4 key购买 nike

我有一个带有保存日期的变量 $facet.name 的 Velocity 模板。现在我想在这个日期上加一个月。我这样做如下:

#set( $cal = $Calendar.getInstance.setTime($facet.name) )
$cal
$cal.add($Calendar.MONTH,1)
$cal.getTime.toString

最后 3 行按原样计算:我得到了

$cal
$cal.add($Calendar.MONTH,1)
$cal.getTime.toString

作为输出。我应该如何正确操作?

最佳答案

Java Calendar.setTime(long)返回 void

这一行

#set( $cal = $Calendar.getInstance.setTime($facet.name) )

会尝试将 setTime() 方法返回的“无效值”分配给 $cal...(虽然我肯定认为,某处应该有关于此的错误消息)

尝试:

#set( $cal = $Calendar.getInstance() )
$cal.setTime($facet.name)

编辑

我认为没有括号的 $Calendar.getInstance 是无效的。 (Velocity 文档是这样说的:一个 VTL 方法体由一个 VTL 标识符和一个左括号字符(“(”)、一个可选参数列表和一个右括号字符 (")”组成。)

另外,请注意:即使 $Calendar 也只有在您将 Calendar.class 作为 "Calendar" 添加到上下文中时才有效。您只有放入其中的内容(或工具放入其中供您使用的内容...)

EDIT2

问题是,SOLR 放入 Velocity 上下文的内容非常有限:

速度上下文

  • esc:速度 EscapeTool实例
  • date:速度 ComparisonDateTool实例
  • list:速度 ListTool实例
  • 数学:速度 MathTool实例
  • number:速度 NumberTool实例
  • 页面:PageTool实例。只有当响应是 QueryResponse 时,页面才会添加到上下文中。
  • 请求:一个SolrQueryRequest
  • 响应:QueryResponse大多数时候,但在 QueryResponse 不喜欢请求处理程序输出的某些情况下(例如,AnalysisRequestHandler 会导致 ClassCastException 解析“响应”),响应将是一个 SolrResponseBase 对象。
  • 排序:速度 SortTool实例

( from SOLR docs )

对于您尝试做的事情,ComparisonDateTool似乎是合适的...

关于java - 将一个月添加到 Velocity 模板中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18895886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com