我找到了一个看起来像这样的代码片段
createReportProfile = function () {
var url = "<%= createLink(controller: 'configCashFlowReport', action: 'saveCreate')%>";
var data = $("form[id=addReportConfigForm]").serializeArray();
var doneFunction = function (data) {
$("#returnAddReportProfiletDiv").html(data);
}
ajaxGet(url, data, doneFunction, undefined);
return false; }
请注意这一行
var url = "<%= createLink(controller: 'configCashFlowReport', action: 'saveCreate')%>";
CreateReportProfile函数位于脚本标记内,并保存在report.gsp中。显然,代码是使用javascript编写的,但其中有一个grails代码(createLink)。
1)Grails如何检测到它应该评估createLInk标签?因为<%= %>
??但它在双引号内。 grails如何区分简单的字符串和应该评估的字符串?
2)如何解析.gsp文件?
答案 0 :(得分:3)
为什么你认为这样的代码难以解析?对于GSP而言,它具有什么内容,html,js或css或其他任何内容并不重要。所有这些都是文字。除了GSP标签/块本身之外,没有与之相关的语义。这些块之外的所有其他内容都按原样传递。
您可以使用<g:createLink />
语法,或${createLink}
。我认为<%= createLink %>
之所以被使用只是因为它更容易在Javascript代码中阅读,并且大多数IDE会在没有任何额外工作的情况下正确地突出显示它。