javascript - 为什么我不能直接将 Javascript 变量传递给 bean 方法?
问题描述
如何将 Javascript 变量(字符串)直接传递给 bean 方法?当我尝试以下操作时,它不起作用。
var dd = document.getElementById("j_idt2:ddcust");
var customer = dd.options[dd.selectedIndex].value;
var credit = document.getElementById("j_idt2:credit");
credit.value = #{creditController.getCreditScore(customer)};
但是,如果我将字符串硬输入到方法调用中(见下文),它就可以工作。
var dd = document.getElementById("j_idt2:ddcust");
var customer = dd.options[dd.selectedIndex].value;
var credit = document.getElementById("j_idt2:credit");
credit.value = #{creditController.getCreditScore("Bau GmbH")};
但我不想硬编码。我的错误在哪里?帮助将不胜感激!
解决方案
您不能这样做,因为 javascript 是在您的网络浏览器中评估的,而表达式语言表达式(如#{creditController.getCreditScore("Bau GmbH")};
)正在服务器端评估,甚至在javascript 发送到您的浏览器进行评估之前。
但是,您可以至少通过以下方式将 javascript 变量内容发送回服务器并将其分配给托管 bean 属性:
作为结论,您不会有一个干净的客户端,只有 javaScript 执行将 javascript 变量传递给 EL 表达式并将 EL 表达式返回值分配给 javascript varialbes,而无需对服务器进行任何回发操作。
推荐阅读
- qt - 没有扩展名的文件的 QFileSystemModel setNameFilter 格式
- android - android.hardware.Camera 是否适用于较新版本的 android?
- javascript - 无法从 HTML 的 jsPDF 进行 AJAX 调用
- reactjs - 这是 React 的 bug 还是一个惊人的 React 特性?
- scala - 用 ReactiveMongo 使用事务的方式是什么?
- wpf - 如何在 XAML 中创建模型并为其赋值
- sql - Nested INNER JOIN within LEFT JOIN in SAS
- java - Spring jdbcTemplate TNS:no appropriate service handler found
- javascript - 从生成的引导程序下拉菜单中查找下拉项
- reactjs - Why is there no error when requesting interface data?