2010-10-07 6 views
18

Intento agregar javascript a mi plantilla de velocidad.plantilla de velocidad y 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> 

pero me dio el siguiente error:

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) 

Si quito el guión javascript, la página web cargado con éxito. cualquiera puede explicar por qué? Creo que javascript no funciona si se usa la plantilla de velocidad.

Respuesta

21

en la velocidad 1.7b1 nueva sintaxis #[[this is included in output but not parsed]]# se introdujo:

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

Eso es una respuesta maravillosa, gracias por su ayuda –

8

Cuando mezclo jQuery y velocidad, creo que la cosa más sencilla de hacerlo es utilizar "jQuery" en lugar de $, por ejemplo,

jQuery("#divid") 

Esto evita cualquier dificultad: escaparse en velocidad es complicado y no es intuitivo.

3

Otra forma es agregar javscript a su propio archivo y usar la directiva #include vtl script.

ej .:

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

contenido de currencyDetail.js (que se encuentra en el paquete mismo directorio/ruta de clases como .vm archivo):

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

Ésta era más fácil para mí.

1

Si no tiene Velocity 1.7+ o necesita usar el código Velocity como parte de javascript o jquery, puede identificar las palabras clave en javascript/jquery que están causando un problema y ponerlas en una variable. Velocity luego renderizará la salida correctamente.

En primer lugar establece la variable:

#set ($replaceme = "each") 

luego usarlo en el código:

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

Esto se traduce en Javascript a trabajar en la página.

1

Actualmente estoy usando Apache Velocity template.How ¿Puedo incluir JavaScript en la velocidad template.I han probado todas sugerencia proporcionar por desbordamiento de pila forum.I no llegó solution.Please sugieren en este tan pronto como sea posible

+0

Esto debe hacerse como una nueva pregunta que muestra el código JavaScript que está intentando ejecutar dentro de Velocity. Hay varias soluciones dependiendo del problema, incluida la sustitución de palabras clave, el almacenamiento de JavaScript en cadenas y el uso de [incluir] (https://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html#include) . La consola en las herramientas de desarrollador (F12) se abre cuando la página se carga debe indicar dónde está el problema. – Underverse

Cuestiones relacionadas