今天看Velocity生成模板代码,写模板时的错误,在此记录
错误如下:
生成实体类:
[echo] 开始生成实体类
[java] Exception in thread "main" org.apache.velocity.exception.ParseErrorException: Encountered "$map" at classes/velocity/EntityVelocity.vm[line 21, column 62]
[java] Was expecting one of:
[java] "," ...
[java] ")" ...
[java]
[java] at org.apache.velocity.Template.process(Template.java:151)
[java] at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:437)
[java] at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)
[java] at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)
[java] at org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleton.java:317)
[java] at org.apache.velocity.app.Velocity.getTemplate(Velocity.java:378)
[java] at velocity.EntityVelocity.<init>(EntityVelocity.java:45)
[java] at velocity.EntityVelocity.main(EntityVelocity.java:71)
BUILD FAILED
D:\Workspace_1.002_ant\cloud\WebRoot\WEB-INF\build.xml:18: Java returned: 1
Total time: 2 seconds
最后找到错误原因:传入到模板的参数不能和 "( )"挨着,即中间应该有一个空格。
错误代码如下:
public void set$map.columnNameForMethod( $map.columnType $map.columnName)
改正之后正确代码如下:
public void set$map.columnNameForMethod ( $map.columnType $map.columnName )