我正在尝试对使用Freemarker从Java代码获得的对象执行Javascript中的Java方法。 我有类型为“ Settinga”的java对象“ actual_id”和方法“ setActual_id”,该方法仅设置对象的一个属性。这是我对js中的方法的调用:
var idd = ${actual_id}.setActual_id(variable);
我看到的不是在html代码中执行:
javaclassurl$Settinga@5beccfce.setActual_id(variable);
有错误:未定义myFunction 在HTMLButtonElement.onclick
为什么它不执行? 以下调用按预期执行,但我需要添加变量:
var idd = "${actual_id.setActual_id("aaa01dd3-abe4-4d50-a69e-62b04199b7c5")}";
我了解Freemarker表达式是在页面生成期间翻译的,当我只使用字符串时,它很容易解释并且可以执行,但是在页面生成期间,我想包含在调用中的变量是未知的,因此需要以其他方式执行。 ..
答案 0 :(得分:0)
因为它的工作方式是这样的:FreeMarker在服务器上执行,将所有${...}
解析为纯文本,然后客户端的浏览器获取生成的HTML并执行JavaScript。