2010-10-07 14 views
18

मैं अपने वेग टेम्पलेट में जावास्क्रिप्ट जोड़ने का प्रयास करता हूं। अगर मैं जावास्क्रिप्ट स्क्रिप्ट, वेब पेज को सफलतापूर्वक लोड हटानेवेग टेम्पलेट और जावास्क्रिप्ट

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) 

:

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

लेकिन मैं निम्नलिखित त्रुटि मिली। कोई भी समझा सकता है क्यों? मुझे लगता है कि वेग टेम्पलेट का उपयोग करते समय जावास्क्रिप्ट काम नहीं करता है।

उत्तर

21

वेग 1.7b1 नई वाक्य रचना #[[this is included in output but not parsed]]# में पेश किया गया:

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

के रूप में है यही कारण है कि इस पर सुझाव है कि नहीं मिला की कोशिश की है एक अद्भुत जवाब, आपकी मदद के लिए धन्यवाद –

8

जब मैं jQuery और वेग मिश्रण, मुझे लगता है ऐसा करने का सरलतम बात का उपयोग करने के "jQuery" है $, उदा के बजाय

jQuery("#divid") 

यह किसी भी कठिनाइयों से बचा जाता है - वेग में भागने मुश्किल और गैर सहज है।

3

एक और तरीका है जावास्क्रिप्ट को अपनी फ़ाइल में जोड़ना, और # शामिल वीटीएल स्क्रिप्ट निर्देश का उपयोग करना।

उदा .:

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

currencyDetail.js की सामग्रियों (.vm फ़ाइल के रूप में एक ही dir/classpath पैकेज में स्थित):

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

यह मेरे लिए सबसे आसान था।

1

यदि आपके पास वेग 1.7+ नहीं है या जावास्क्रिप्ट या jquery के हिस्से के रूप में वेग कोड का उपयोग करने की आवश्यकता है तो आप जावास्क्रिप्ट/jquery में महत्वपूर्ण शब्दों की पहचान कर सकते हैं जो समस्या पैदा कर रहे हैं और उन्हें एक चर में डालते हैं। वेग तब आउटपुट सही ढंग से प्रस्तुत करेगा।

#set ($replaceme = "each") 

तब कोड में इसका इस्तेमाल करते हैं:

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

इस पृष्ठ पर काम कर रहा जावास्क्रिप्ट में जो परिणाम

प्रथम चर सेट।

1

वर्तमान में मैं उपयोग कर रहा हूँ अपाचे वेग template.How मैं वेग template.I में जावास्क्रिप्ट को शामिल कर सकते हैं सभी सुझाव ढेर अतिप्रवाह forum.I द्वारा प्रदान solution.Please जितनी जल्दी हो सके

+0

इसे जावास्क्रिप्ट कोड दिखाते हुए एक नया प्रश्न पूछा जाना चाहिए जिसे आप Velocity के अंदर चलाने का प्रयास कर रहे हैं। कुंजी शब्द प्रतिस्थापन सहित समस्या के आधार पर कई वर्कअराउंड हैं, स्ट्रिंग में जावास्क्रिप्ट को संग्रहीत करना और [शामिल] (https://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html#include) का उपयोग करना । डेवलपर टूल्स (एफ 12) में कंसोल तब होता है जब पृष्ठ लोड होने पर संकेत मिलता है कि समस्या कहां है। – Underverse

संबंधित मुद्दे