branaway / Japid

A Java-based statically-typed fast template engine that can be used in any Java code. It has special adapter for use with the Play! Framework.
113 stars 18 forks source link

[bug report] - String parameter-value can't contain "|" #22

Closed tunggad closed 13 years ago

tunggad commented 13 years ago
`tag ajax name="myAjax", url="/DTD/myAjax", data="{value:'my Name'}", \
              reRender="#someDivId, .someClass|append", \
              event="#otherDivId"

--> error: reRender param value contains | [Japid] Transforming template: app\japidviews\backend\Admin\index.html to: index.java java.lang.RuntimeException: the line does not seem to be a valid param declaration list: append", event="#otherDivId" at cn.bran.japid.compiler.JavaSyntaxTool.parseParams(JavaSyntaxTool.java:88) at cn.bran.japid.compiler.TagInvocationLineParser.parse(TagInvocationLineParser.java:52) at cn.bran.japid.compiler.JapidAbstractCompiler.buildTagDirective(JapidAbstractCompiler.java:891) at cn.bran.japid.compiler.JapidAbstractCompiler.doTagDirective(JapidAbstractCompiler.java:675) at cn.bran.japid.compiler.JapidAbstractCompiler.script(JapidAbstractCompiler.java:428) at cn.bran.japid.compiler.JapidAbstractCompiler.scriptline(JapidAbstractCompiler.java:313) at cn.bran.japid.compiler.JapidTemplateCompiler.scriptline(JapidTemplateCompiler.java:110) at cn.bran.japid.compiler.JapidAbstractCompiler.parse(JapidAbstractCompiler.java:137) at cn.bran.japid.compiler.JapidAbstractCompiler.hop(JapidAbstractCompiler.java:824) at cn.bran.japid.compiler.JapidAbstractCompiler.compile(JapidAbstractCompiler.java:91) at cn.bran.japid.compiler.JapidTemplateTransformer.generate(JapidTemplateTransformer.java:131) at cn.bran.japid.compiler.TranslateTemplateTask.execute(TranslateTemplateTask.java:141) at cn.bran.play.JapidCommands.reloadChanged(JapidCommands.java:224) at cn.bran.play.JapidCommands.reloadChanged(JapidCommands.java:289) at cn.bran.play.JapidPlugin.beforeDetectingChanges(JapidPlugin.java:86) at cn.bran.play.JapidPlugin.onLoad(JapidPlugin.java:49) at play.plugins.PluginCollection.initializePlugin(PluginCollection.java:188) at play.plugins.PluginCollection.loadPlugins(PluginCollection.java:120) at play.Play.init(Play.java:276) at play.server.Server.main(Server.java:142) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) Exception in thread "Main Thread" java.lang.RuntimeException: java.lang.RuntimeException:the line does not seem to be a valid param declaration list: append", event="#otherDivId" at cn.bran.japid.compiler.TranslateTemplateTask.execute(TranslateTemplateTask.java:145) at cn.bran.play.JapidCommands.reloadChanged(JapidCommands.java:224) at cn.bran.play.JapidCommands.reloadChanged(JapidCommands.java:289) at cn.bran.play.JapidPlugin.beforeDetectingChanges(JapidPlugin.java:86) at cn.bran.play.JapidPlugin.onLoad(JapidPlugin.java:49) at play.plugins.PluginCollection.initializePlugin(PluginCollection.java:186) at play.plugins.PluginCollection.loadPlugins(PluginCollection.java:120) at play.Play.init(Play.java:273) at play.server.Server.main(Server.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

When i try to call this tag as it had body:

`tag ajax name="myAjax", url="/DTD/myAjax", data="{value:'my Name'}", \
              reRender="#someDivId, .someClass|append", \
              event="#otherDivId" |
    `

----> then we have other error: Compilation error (In /app/japidviews/backend/Admin/index.java around line 163) The file /app/japidviews/backend/Admin/index.java could not be compiled. Error raised is : ajax.DoBody cannot be resolved to a type

play.exceptions.CompilationException: ajax.DoBody cannot be resolved to a type at play.classloading.ApplicationCompiler$2.acceptResult(ApplicationCompiler.java:246) at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:672) at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:516) at play.classloading.ApplicationCompiler.compile(ApplicationCompiler.java:280) at play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:408) at play.Play.start(Play.java:456) at play.Play.detectChanges(Play.java:574) at play.Invoker$Invocation.init(Invoker.java:187) at Invocation.HTTP Request(Play!)

I know, as a workaround, i can put a ``doBody into tag definition, but this tag actually should not accept a body. Could i see it as a BUG? ^^ Thank you!

branaway commented 13 years ago

confirmed.

branaway commented 13 years ago

version 0.8.7.1 should fix it

tunggad commented 13 years ago

fix confirmed.