- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题很简单,但我认为 Velocity 不支持这个。我必须访问具有 vm 文件中定义的变量名称的映射或对象。
#foreach( $i in [1..10] )
#set( $img_link = "slide${i}_link" )
#set( $img_src = "slide${i}.jpg" )
#set( $img_alt = "slide${i}_alt" )
<li>
<a href="$config.$img_link">
<img src="/assets/images/$img_src" alt="$config.$img_alt" />
</a>
</li>
#end
(配置是一个 map )
这里的问题是,当我发送此模板进行渲染时,我得到以下代码:
<li>
<a href="<toString of map>.slide_1_link">
<img src="/assets/images/slide_1.jpg" alt="<toString of map>.slide_1_alt" />
</a>
</li>
看起来在渲染模板时,$img_src、$img_link 和 $img_alt 没有正确定义,velocity 试图在自身上渲染 config 对象,并在下一轮渲染,配置它已经渲染为纯文本,剩下的变量就放在那里。
比这更奇怪的是,如果我在上下文中渲染 vm without config 对象,然后我添加它并渲染已经渲染的内容,它被正确处理,但它没有对我来说没有任何意义。
我在尝试访问 pojo 而不是 map 时看到了同样的行为。
您知道这是 Velocity 错误还是我遗漏了什么?
谢谢。
java :1.5速度:1.7速度工具:2.0
最佳答案
好的,解决了。
可以通过三种不同的方式访问 map :
如果您尝试使用硬编码值,甚至是基于硬编码值的变量,这三种方法都可以完美地工作。 但是如果您尝试使用一个值基于另一个变量的变量访问 map ,则选项 2 将不起作用。
我留下这条评论以防有人遇到同样的错误。
关于java - 使用动态变量名称访问 VelocityContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23698049/
我的问题很简单,但我认为 Velocity 不支持这个。我必须访问具有 vm 文件中定义的变量名称的映射或对象。 #foreach( $i in [1..10] ) #set( $img_link
在我的 Velocity 模板(.vm 文件)中,如何遍历 VelocityContext 中存在的所有变量或属性?引用下面的代码,我希望模板写入上下文中传递的所有水果的名称和数量。 Map attr
我想访问模板中某个模型类的所有属性。如果我这样做 VelocityContext context = new VelocityContext(); context.put("model", new M
如果在VelocityContext中没有找到值,Velocity只会打印标签名称,即我的模板文件中的$name,但是VelocityContext中没有“name”的值,所以只打印了“$name”。
我是 Velocity 的新手,发现模板的变量没有被我放入 VelocityContext 中的值替换,这很奇怪。 代码是这样的。 import java.io.StringWriter; impor
我是一名优秀的程序员,十分优秀!