【发布时间】:2015-05-10 17:58:40
【问题描述】:
我正在开发一个使用 JSF、Maven、Spring-Data 框架和 Neo4J 图形数据库的 Web 应用程序项目。
这是我工作中的一个示例 JSF 页面
// JSF Sample Page
…
<h:commandButton value="button" onclick="fun(#{bean.doWork()})" />
…
以及我工作中的一个示例 JavaScript 页面
// JavaScript Sample Page
…
function fun (var_value) {
…
}
…
以及我工作中的示例托管 Bean 类
// Managed Bean Sample Class
…
public int doWork() {
…
}
…
问题是: JavaScript在启动时调用托管bean的方法(我不知道为什么)。
最大的问题是: JavaScript 不会在命令按钮单击时调用托管 bean 的方法。
注意: 单击命令按钮时,它会调用 JavaScript 函数,但不会调用托管 bean 的方法,而是使用在启动时通过调用托管 bean 的方法加载的数据
另一个注意事项: 在命令按钮上调用托管bean的方法时直接单击而不使用JavaScript函数它工作正常并且不会在启动时调用托管bean的方法(似乎这是我问题的解决方案,但我必须使用JavaScript)
【问题讨论】:
-
这个 JavaScript 函数
function fun (var) {...}中的var是什么?它是一个保留关键字,不能用作变量名。观察浏览器控制台是否有任何 JavaScript 错误。这个Java方法不是语法(syntactic)Public int doWork() {...}。它不会编译。注意这里开头Public的大写(P)。 -
@Tiny 对不起,我已经更新了我的问题,写得不好不是语法错误
标签: javascript jsf spring-data managed-bean