这是一个javascript / jQuery函数。这里我从javascript访问grails会话变量
function changeContactPersonDetails(value){
alert(value)
//alert(typeof(value))
$("#billingPersonName").val("${session.traineeDetais.name[" + value + "]}");
}
这里我想使用变量“value
”的值作为索引。但它给出了错误
Caused by: groovy.lang.MissingPropertyException: Exception evaluating property ' + value + ' for java.util.Arrays$ArrayList, Reason: groovy.lang.MissingPropertyException: No such property: + value + for class: java.lang.String
at E__Workspace_opaltpm_grails_app_views_trainingOrder__billingDetailsTemplate_gsp$_run_closure1.doCall(E__Workspace_opaltpm_grails_app_views_trainingOrder__billingDetailsTemplate_gsp:15)
答案 0 :(得分:3)
您正在混合服务器和客户端代码。
变量value
是(clientside)jquery函数的参数。
以下代码${session.traineeDetais.name[" + value + "]}
由grails(serverside)执行,其中变量value
未知。
您必须将数组传递给您的客户端,您可以在jquery函数中访问它。
使用JSON
传递如下数据:
var dataFromServer = ${session.traineeDetais.name as grails.converters.JSON}
function changeContactPersonDetails(value){
alert(value)
$("#billingPersonName").val(dataFromServer[value]);
}
更清洁的方法是在控制器中计算/转换数组并将其传递给视图......