0

我正在尝试使用velocity (1.6.2 and tools 2.0 beta4) 的非常简单的struts2 (2.1.6) 应用程序,

它只不过是一个带有单个文本字段的简单表单。

代码如下

 ## Velocity Template.   
<html>   
    <head>   
        <title>Struts2 and velocity </title>   
   </head>   

    <body>   

     pass this message:   

     $sform("action=Amma"  "validate=true")   

     $stextfield ("label=message" "name=userName" "size=20")   

     $ssubmit ("label=pass it")   

     #end   

  </body>   

  </html>   

当我调用这个速度文件时,我收到以下错误

java.lang.RuntimeException: org.apache.velocity.exception.ParseErrorException: Encountered "#end\n" at /velocityArea/ammaMessage.vm[line 24, column 5]   
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.tools.view.VelocityView.getTemplate(VelocityView.java:858)   
    at org.apache.velocity.tools.view.VelocityView.getTemplate(VelocityView.java:809)   
    at org.apache.velocity.tools.view.VelocityViewServlet.getTemplate(VelocityViewServlet.java:287)   
    at org.apache.velocity.tools.view.VelocityViewServlet.handleRequest(VelocityViewServlet.java:248)   
    at org.apache.velocity.tools.view.VelocityViewServlet.doRequest(VelocityViewServlet.java:215)   
    at org.apache.velocity.tools.view.VelocityViewServlet.doGet(VelocityViewServlet.java:181)   
    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 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)   
    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:128)   
    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:293)   
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)   
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)   
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)   
    at java.lang.Thread.run(Thread.java:619)   
Caused by: org.apache.velocity.exception.ParseErrorException: Encountered "#end\n" at /velocityArea/ammaMessage.vm[line 24, column 5]   
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:141)   
    at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:446)   
    at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:354)   
    at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1400)   
    at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:422)   
    at org.apache.velocity.tools.view.VelocityView.getTemplate(VelocityView.java:853)   
    ... 22 more   

似乎问题就在附近

 #end 

标签 ,

但我不知道如何解决这个问题,等待您的回复..

问候

泰米尔瓦南

4

1 回答 1

1

为什么需要#end 标签?你没有要结束的障碍。只需将其删除。

END 用于像循环一样结束块,

#foreach( $item in $list )
    <li>$item</li>
#end
于 2009-09-06T18:33:20.457 回答