有人成功使用了dojo> 1.6使用Freemarker模板中的spring MVC工具包以声明方式构建小部件?
更确切地说,Freemarker在从旧式dojo(我们使用到现在)转换时会窒息,如下所示:
<@form.select path="fruit" dojoType="dojo.dijit.Select"/>
到新的dojo语法(我们想要使用),如:
<@form.select path="fruit" data-dojo-type="dojo/dijit/Select"/>
值得一提的是,转换适用于纯HTML元素,如:
<div data-dojo-type="dojo/layout/TabContainer"/>
因此,似乎使用了&#34;虚线属性名称&#34;不适用于FTL页面中包含的外部标记库。
任何人都可以证实这一点,或者,无论如何都可以证明如何做到这一点?
非常感谢。
答案 0 :(得分:0)
Yip,FreeMarker 2.3语法不能处理参数名称中的破折号,因为它们是减法,然后是比较。甚至可以在不破坏向后兼容性的情况下进行更改。事实上,FreeMarker 2.4针对那些需要语法变化的问题以及其他一些需要进行语法修改的问题,但这很远。
大多数人使用date_foo
代替data-foo
,然后在打印属性名称时将_
替换为-
。但是,@form.select
并未由您撰写,因此可能会变得棘手。好吧,如果你很幸运,它是TemplateDirectiveModel
然后你可以编写自己的TemplateDirectiveModel
代替它做完替换...但如果它是一个宏,你是运气不好。
我想知道2.3.21是否应该只允许foo\-bar\-baaz
或类似的东西作为标识符...丑陋但至少在2.4之前的解决方案。