我正在尝试使用freemarker创建一个struts2组件。我创建了一个ftl
文件,其代码如下:
<script type="text/javascript" src="${parameters.library?default('')}"></script>
期望将名为library
的参数传递给组件。如果参数不存在,则默认为空白String
。
在我的JSP页面上,我指的是这样的组件:
<s:component template="mytemplate.ftl">
<s:param name="library" value="/scripts/mylibrary.js"/>
</s:component>
不幸的是,没有设置library参数的值。它始终为空String
。
我正在使用此tutorial中的建议,似乎s:param
标记应将参数传递到模板中并使其可用。我在这里错过了什么?
有没有人有一些构建这些组件的经验可以解决一些问题?
感谢。
答案 0 :(得分:5)
使用单引号发送参数
<s:component template="mytemplate.ftl">
<s:param name="library" value="'/scripts/mylibrary.js'"/>
</s:component>
答案 1 :(得分:0)
我最终在有效的文档中遇到了一些语法。我必须参考这样的参数:
<script type="text/javascript" src="${parameters.get('library')?default('')}">
</script>