Java方法无法使用Freemarker从Javascript执行

时间:2018-10-16 07:55:55

标签: javascript java freemarker

我正在尝试对使用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表达式是在页面生成期间翻译的,当我只使用字符串时,它很容易解释并且可以执行,但是在页面生成期间,我想包含在调用中的变量是未知的,因此需要以其他方式执行。 ..

1 个答案:

答案 0 :(得分:0)

因为它的工作方式是这样的:FreeMarker在服务器上执行,将所有${...}解析为纯文本,然后客户端的浏览器获取生成的HTML并执行JavaScript。