2010-10-07 10 views
18

Ich versuche, Javascript zu meiner Geschwindigkeit Vorlage hinzuzufügen.Geschwindigkeit Vorlage und Javascript

<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> 

aber ich habe den folgenden Fehler:

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) 

Wenn ich die JavaScript-Skript, um die Webseite geladen erfolgreich entfernen. Jeder kann erklären warum? Ich denke Javascript funktioniert nicht, wenn Geschwindigkeitsschablone verwendet wird.

Antwort

21

In Velocity 1.7b1 neue Syntax #[[this is included in output but not parsed]]# wurde eingeführt:

#[[ 
    $(document).ready(function() { 
     ... 
    }); 
]]# 
+0

Das ist, eine wunderbare Antwort, Danke für Ihre Hilfe –

8

Wenn ich jquery und Geschwindigkeit mischen, ich die einfachste Sache für Sie zu tun, ist die Verwendung von „jQuery“ statt $, z.B.

Dies vermeidet jegliche Schwierigkeiten - das Ausbrechen der Geschwindigkeit ist schwierig und nicht intuitiv.

3

Eine andere Möglichkeit besteht darin, javscript zu einer eigenen Datei hinzuzufügen und die Skriptanweisung #include vtl zu verwenden.

Z. B .:

<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script> 
    #include("currencyDetail.js") 
</script> 

Inhalt currencyDetail.js (befindet sich in demselben Verzeichnis/Classpath-Paket als .vm-Datei):

$(document).ready(function() { 
    setInterval(function() { 
     $.get('updateCurrency.htm', function(data) { 
      $('#time').text(data);   
     }); 
    }, 5 * 60 * 1000); // 1000 milliseconds = 1 second. 
}); 

Das war für mich am einfachsten.

1

Wenn Sie Velocity 1.7+ nicht haben oder Velocity-Code als Teil des Javascript oder Jquery verwenden müssen, können Sie die Schlüsselwörter in der Javascript/Jquery, die ein Problem verursachen, identifizieren und in eine Variable einfügen. Velocity rendert dann die Ausgabe korrekt.

zuerst die Variable:

#set ($replaceme = "each") 

Dann im Code verwenden:

function reverseCommentOrder(){ 
    $comments = AJS.$('#page-comments'); 
    $comments.children().$replaceme(function(i,li){$comments.prepend(li)}); 
} 

Dies führt in Javascript auf der Seite zu arbeiten.

1

Derzeit bin ich mit Apache Velocity template.How Kann ich JavaScript in Velocity template.i enthalten haben alle Vorschlag von Stack-Überlauf forum.I liefern versucht nicht bekommen solution.Please auf diese legen nahe, so bald wie möglich

+0

Dies sollte als eine neue Frage gefragt werden, die den JavaScript-Code zeigt, den Sie in Velocity auszuführen versuchen. Je nach Problem gibt es mehrere Problemumgehungen, einschließlich der Schlüsselwortersetzung, Speichern des JavaScript in Strings und Verwenden von [include] (https://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html#include). . Die Konsole in den Entwicklertools (F12) wird geöffnet, wenn die Seite lädt, wo ein Problem liegt. – Underverse