【问题标题】:Why Velocity is not replacing values?为什么 Velocity 没有取代价值?
【发布时间】:2023-03-24 07:09:01
【问题描述】:

我的模板字符串如下,我想替换 $java.lang.Object.property

的值
     String tempString = "hi test message for velocity $java.lang.Object.property";

这里我传递上下文映射如下

    VelocityContext context = new VelocityContext();
    context.put("java.lang.Object.property", "1");
    StringWriter message = new StringWriter();
    mVelocityEngine.evaluate( context, message, "LOG", tempString);

为什么速度引擎无法从模板中替换 java.lang.Object.property 的值?

请帮忙。 提前致谢。

【问题讨论】:

    标签: java apache velocity


    【解决方案1】:

    简答:

    不要在上下文名称中使用.

    长答案:

    Velocity 对. 有特殊处理,我认为它实际上是在尝试调用

    context.get("java").getLang().getObject().getProperty()
    

    我不是 100% 确定语法,但也许您可以尝试 $['java.lang.Object.property'] 或类似的...可能最好查看速度文档以了解如何通过字符串/映射查找访问上下文变量。

    另一种选择是将地图添加到上下文并通过以下方式访问:

    $map['java.lang.Object.property']
    

    【讨论】:

    • 感谢兰斯的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    相关资源
    最近更新 更多