【发布时间】:2011-10-13 06:55:52
【问题描述】:
我正在尝试将 jQuery 帖子添加到网页上的某些 JavaScript。整个页面由几个 Velocity 模板组成。一切都很好,直到我尝试添加 jQuery 帖子,现在我得到:
org.apache.velocity.exception.ParseErrorException: Encountered "," at line 282, column 24 of /WEB-INF/velocity/www/comments.vm
Was expecting one of:
"(" ...
<RPAREN> ...
<ESCAPE_DIRECTIVE> ...
~~~snip~~~
第 282 行是 $.post(...,第 24 列似乎是第一个“,”字符。最初我在这一行上有 JSON,但我将它向上移动(到 var myJSONObject ... 行),因为我认为错误与无效 JSON 相关(行开头的选项卡给出了误导性的列号)。
var myJSONObject = {"body": "", "action": "postcomment", "submitted": "true", "ajax": "true"};
myJSONObject.body = $("body").val();
$.post("$!{articleurl}", myJSONObject, function(result){
btn.textContent='Comment sent successfully.';
});
小更新
我更改了以下几行:
var url = "$articleurl";
$.post(url, myJSONObject, function(result){
~~~snip~~~
解析异常仍然关注第一个“,”。我假设问题是 Velocity 认为它应该能够解析 $.post - 事实上,它是 jQuery。我在其他 Velocity VM 模板中使用 jQuery 没有任何问题。有没有办法让 Velocity 在解析时忽略某些行/语句?
更新 2
我发现 this link 关于在 Velocity 中转义引用,但它不能解决我的问题。在$.post 之前添加“\”会给我带来完全相同的错误,但是由于在行首添加了字符,所以该列是额外的。
【问题讨论】:
标签: java javascript jquery json velocity