我正在尝试用NVelocity做一些关于淘汰赛的教程。一切都很好,但在模板方面存在问题。当我到达this tutorial的第三步时,它会在行${meal().mealName}
中给出错误。任何人都可以向我解释为什么会发生这种情况?
这是堆栈跟踪:
[ParseException: Encountered "().mealName}</td>\r\n <td>" at line 50, column 23.
Was expecting one of:
"}" ...
<DOT> ...
]
NVelocity.Runtime.Parser.Parser.Parse(TextReader reader, String templateName) +257
NVelocity.Runtime.RuntimeInstance.Parse(TextReader reader, String templateName, Boolean dumpNamespace) +327
NVelocity.Runtime.RuntimeInstance.Parse(TextReader reader, String templateName) +71
NVelocity.Template.Process() +252
[ParseErrorException: Encountered "().mealName}</td>\r\n <td>" at line 50, column 23.
Was expecting one of:
"}" ...
<DOT> ...
]
NVelocity.Template.Process() +585
Castle.MonoRail.Framework.Views.NVelocity.CustomTemplate.Process() +266
Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.ProcessResourceWithSensibleExceptionWrapping(String resourceName, Resource resource) +67
[ResourceProcessingException: Unable to process resource 'Home\index.vm': Encountered "().mealName}</td>\r\n <td>" at line 50, column 23.
Was expecting one of:
"}" ...
<DOT> ...
]
Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.ProcessResourceWithSensibleExceptionWrapping(String resourceName, Resource resource) +117
Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.GetResource(String resourceName, ResourceType resourceType, String encoding) +663
NVelocity.Runtime.RuntimeInstance.GetTemplate(String name, String encoding) +81
NVelocity.Runtime.RuntimeInstance.GetTemplate(String name) +104
NVelocity.App.VelocityEngine.GetTemplate(String name) +71
Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine.Process(String viewName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) +593
Castle.MonoRail.Framework.Services.DefaultViewEngineManager.Process(String templateName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) +262
Castle.MonoRail.Framework.Controller.ProcessView() +170
Castle.MonoRail.Framework.Controller.RunActionAndRenderView() +2529
Castle.MonoRail.Framework.Controller.Process(IEngineContext engineContext, IControllerContext context) +74
Castle.MonoRail.Framework.BaseHttpHandler.Process(HttpContext context) +175
[MonoRailException: Error processing MonoRail request. Action index on controller Home]
Castle.MonoRail.Framework.BaseHttpHandler.Process(HttpContext context) +505
Castle.MonoRail.Framework.BaseHttpHandler.ProcessRequest(HttpContext context) +53
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
答案 0 :(得分:1)
$
是NVelocity和jQuery(默认情况下)的特殊符号,会导致冲突。但是,可以使用jQuery.noConflict为jQuery重新定义。使用这个你可以将jQuery的$
设置为其他符号,虽然我不是100%肯定这也适用于jQuery模板(这是淘汰赛使用的)。