【问题标题】:javascript freemarker springmvc spring.ftljavascript freemarker springmvc spring.ftl
【发布时间】:2012-10-31 05:48:41
【问题描述】:
如何使用javascript调用spring freemarker宏?
<@spring.formInput "message.title" 'id="message1" size="10" name="message1"'/>
<@spring.showErrors "<br>", "error"/>`
alert(document.getElementsById("message1"));
做不到?
为什么?
【问题讨论】:
标签:
javascript
validation
spring-mvc
freemarker
【解决方案1】:
因为这不是 freemarker 的工作方式,所以在使用 <@spring.formInput/> 时实际发生的是:
<#macro formInput path attributes="" fieldType="text">
<@bind path/>
<input type="${fieldType}" id="${status.expression}" name="${status.expression}" value="<#if fieldType!="password">${stringStatusValue}</#if>" ${attributes}<@closeTag/>
</#macro>
所以 id 将是(在你的情况下)'title',有时它不会发生我的建议是添加类属性并按类获取你的元素以避免与 freemarker 发生任何冲突
所以你应该这样做:
<@spring.formInput "message.title" 'class="myClass" size="10"'/>
<@spring.showErrors "<br>", "error"/>`
alert(document.getElementsByClass("myClass"));
这肯定会奏效。我希望这会有所帮助