【发布时间】:2013-05-07 08:14:55
【问题描述】:
我有这个 JSF 按钮,当它被按下时会调用 Java 方法:
<h:commandButton id="editdata" value="HiddenDelete" style="position:absolute; bottom:25px; right:650px;" actionListener="#{bean.saveData}" rendered="#{bean.editable}">
<f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>
public void saveData() throws SQLException
{
.....
}
当我进行 AJAX 调用时,按钮无法正常工作。你能帮我找出为什么在 AJAX 调用后没有调用 Java 方法吗?
【问题讨论】:
-
请排除stackoverflow.com/a/2120183的原因或发布SSCCE。当前代码不是 SSCCE 风格的。当复制粘贴您的代码并手动添加您从问题中省略的最小必需代码以使其按照规范/文档工作时(例如,添加缺少的
ActionEvent参数,但应该抛出异常),它工作正常对我来说(可能还有其他人)。要了解如何创建合适的 SSCCE,请仔细阅读stackoverflow.com/tags/jsf/info 如果没有 SSCCE,您的问题基本上无法回答。 -
如果您从开发人员的角度而不是从最终用户的角度详细说明问题,您将进一步帮助您自己和我们。您只是说“它不起作用”,就好像您是最终用户一样。这个不对。你应该知道整个过程中的哪一步失败了。触发 DOM 点击事件?准备ajax请求?发送ajax请求?用JSF解码ajax请求?识别点击的按钮?排队操作事件?调用动作事件?等等。
-
彼得,您是否尝试过将事件传递给您的方法(如我的回答中所建议的那样,BalusC 也提到过)?如果是这样,您能否分享您的更新代码和结果案例? “工作不正常”是不够的。也分享bean的注解和
saveData和editable的实现。 -
请写下您的jsf页面的详细代码及其作用域,您的xhtml代码是否封装到表单中?