velocity模板和javascript
我尝试将javascript添加到我的velocity模板中velocity模板和javascript,java,spring-mvc,velocity,Java,Spring Mvc,Velocity,我尝试将javascript添加到我的velocity模板中 <html> <head> <title>:: $currency.CurrencyName Detail Info ::</title> </head> <body> <table> <tr> <td>Name</td> <td>$currency.CurrencyName</td&
<html>
<head>
<title>:: $currency.CurrencyName Detail Info ::</title>
</head>
<body>
<table>
<tr>
<td>Name</td>
<td>$currency.CurrencyName</td>
</tr>
<tr>
<td>Jual</td>
<td><div id="$currency.CurrencyName_buy">$currency.Buy</div></td>
</tr>
<tr>
<td>Beli</td>
<td><div id="$currency.CurrencyName_sell">$currency.Sell</div></td>
</tr>
</table>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
setInterval(function() {
$.get('updateCurrency.htm', function(data) {
$('#time').text(data);
});
}, 5 * 60 * 1000); // 1000 milliseconds = 1 second.
});
</script>
<p>Current date/time is: <span id="time"></span>
</body>
</html>
:$currency.CurrencyName详细信息:
名称
$currency.CurrencyName
胡埃尔
$currency.Buy
贝里
$currency.Sell
$(文档).ready(函数(){
setInterval(函数(){
$.get('updateCurrency.htm',函数(数据){
$('时间')。文本(数据);
});
},5*60*1000);//1000毫秒=1秒。
});
当前日期/时间为:
但我得到了以下错误:
org.apache.velocity.exception.ParseErrorException: Encountered "," at line 28, column 29 of currencyDetail.html
Was expecting one of:
<EOF>
"(" ...
<RPAREN> ...
<ESCAPE_DIRECTIVE> ...
<SET_DIRECTIVE> ...
"##" ...
"\\\\" ...
"\\" ...
<TEXT> ...
"*#" ...
"*#" ...
<STRING_LITERAL> ...
<IF_DIRECTIVE> ...
<STOP_DIRECTIVE> ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<WORD> ...
<BRACKETED_WORD> ...
<IDENTIFIER> ...
<DOT> ...
"{" ...
"}" ...
at org.apache.velocity.Template.process(Template.java:137)
at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:415)
at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1077)
at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:528)
at org.springframework.web.servlet.view.velocity.VelocityView.getTemplate(VelocityView.java:535)
at org.springframework.web.servlet.view.velocity.VelocityView.getTemplate(VelocityView.java:520)
at org.springframework.web.servlet.view.velocity.VelocityView.checkTemplate(VelocityView.java:293)
at org.springframework.web.servlet.view.velocity.VelocityView.initApplicationContext(VelocityView.java:258)
at org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73)
at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:70)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1355)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:314)
at org.springframework.web.servlet.view.UrlBasedViewResolver.loadView(UrlBasedViewResolver.java:413)
at org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:159)
at org.springframework.web.servlet.view.UrlBasedViewResolver.createView(UrlBasedViewResolver.java:378)
at org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:78)
at org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1190)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1139)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
org.apache.velocity.exception.ParseErrorException:Converted“,在currencyDetail.html第28行第29列
我期待的是:
"(" ...
...
...
...
"##" ...
"\\\\" ...
"\\" ...
...
"*#" ...
"*#" ...
...
...
...
...
...
...
...
...
...
"{" ...
"}" ...
位于org.apache.velocity.Template.process(Template.java:137)
位于org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:415)
位于org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
位于org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
位于org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1077)
位于org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:528)
位于org.springframework.web.servlet.view.velocity.VelocityView.getTemplate(VelocityView.java:535)
位于org.springframework.web.servlet.view.velocity.VelocityView.getTemplate(VelocityView.java:520)
位于org.springframework.web.servlet.view.velocity.VelocityView.checkTemplate(VelocityView.java:293)
位于org.springframework.web.servlet.view.velocity.VelocityView.initApplicationContext(VelocityView.java:258)
位于org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73)
在org.springframework.context.support.ApplicationContextawareReprocessor.postProcessBeforeInitialization(ApplicationContextawareReprocessor.java:70)上
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:323)上
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1355)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:314)
位于org.springframework.web.servlet.view.UrlBasedViewResolver.loadView(UrlBasedViewResolver.java:413)
位于org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:159)
位于org.springframework.web.servlet.view.UrlBasedViewResolver.createView(UrlBasedViewResolver.java:378)
位于org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:78)
位于org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1190)
位于org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1139)
位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
位于org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
位于com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
位于java.lang.Thread.run(未知源)
如果我删除javascript脚本,网页将成功加载。任何人都可以解释为什么?我认为如果使用velocity模板,javascript不起作用。在velocity 1.7b1中,引入了新语法
。[[这包含在输出中,但未解析]]
:
#[[
$(document).ready(function() {
...
});
]]#
当我混合使用jquery和Velocity时,我发现最简单的方法是使用“jquery”而不是$,例如
jQuery("#divid")
这就避免了任何困难——在velocity中转义是非常棘手和不直观的。另一种方法是将javscript添加到它自己的文件中,并使用#include vtl script指令 例如:
这对我来说是最简单的。如果您没有Velocity 1.7+或需要将Velocity代码用作javascript或jquery的一部分,您可以识别javascript/jquery中导致问题的关键字,并将其放入变量中。然后Velocity将正确呈现输出 首先设置变量:
#set ( $replaceme = "each" )
然后使用它
$(document).ready(function() {
setInterval(function() {
$.get('updateCurrency.htm', function(data) {
$('#time').text(data);
});
}, 5 * 60 * 1000); // 1000 milliseconds = 1 second.
});
#set ( $replaceme = "each" )
function reverseCommentOrder(){
$comments = AJS.$('#page-comments');
$comments.children().$replaceme(function(i,li){$comments.prepend(li)});
}