单击某个按钮时调用受管 Bean 方法



我是JSF的新手,想要一个按钮,点击后,它将调用支持bean的方法。这是可能的还是我必须使用 AJAX 或其他东西?我尝试过这样的事情

<button onclick="#{myManagedBean.myMethod()}">MyButton</button>

但他们没有工作。通常的做法是什么?

编辑:
该按钮是由JqueryUI创建的,我无法将按钮的类型更改为命令按钮。我只能进行两个自定义-
1. 从该按钮
调用 JavaScript 函数2. 更改窗体的目标(按钮所在的位置)
那么,我如何从这两种方式调用支持bean方法,例如从Javascript或表单提交?

在 JSF 中,您有 JSF 组件的操作参数,该参数可以绑定到受管 Bean 中的方法。 使用此方法绑定,可以调用受管 Bean 的方法。

<h:commandButton value="click" action="#{managedbean.method}"/>

onClick 用于调用客户端脚本函数,如 java script。为了在服务器端调用方法(支持 bean),您需要使用 commandButton 组件的 action 属性。JSF 为此提供了一个组件 h:commandButton。使用 commandButton 调用后备 Bean 中的方法的语法是

 <h:commanButton value="button" action="#{myBean.methodName()}"/>

要调用的方法应采用 String methodName() 格式,其中返回的 String 值表示导航处理程序用于确定接下来要显示的页面的结果。

编辑:

为了从按钮调用支持Bean方法,请使用按钮的onClick属性来调用javascript函数。您需要在窗体中创建一个隐藏按钮,用于调用所需的后备 Bean 方法。在 javascript 函数中,使用以下代码单击隐藏按钮,从而调用支持bean方法。

  document.getElementById('form:button').click();

你必须使用 jsf 命令按钮组件

<h:commandButton value="MyButton" action="#{myManagedBean.myMethod()}"></h:commandButton>

实际上,Adarsh 已经回答得很好了,我在这里要添加的是使用 jQuery 调用 JSF 支持 bean 函数的可选选项,这也很方便,您可以在 jQuery 的帮助下单击按钮时添加更复杂的逻辑。

您可以使用 JSF h:commandButton,此外,您可以在调用 JSF 支持的 bean 函数的元素中添加一个 action 属性。

例如<h:commandButton value="Update" id="update" action="#{myPageBean.updateMyPage}"></h:commandButton>

您可能已经注意到上面示例中未显示的onClick()或类似事件,实际上这部分作业将由jQuery作为事件处理和处理进行处理。

例如,找到带有var updateButton = $(document.getElementById("myPage:update"));var updateButton = $(#"myPage\:update"));的按钮然后使用 jQuery click()函数将按钮上的点击事件注册为 updateButton.click(function() {...do whatever you want here...});

最终的效果应该是当你点击你的JSF页面按钮时,它会调用JSF支持bean方法作为updateMyPage,希望对你有所帮助。

最新更新