使用普通HTML按钮在JavaScript中调用托管Bean方法

3

我需要在JavaScript中调用托管bean方法,同时点击普通的HTML按钮。如果我使用JSF2.x和Primefaces,是否可以实现这一点?


你所说的“调用托管bean API”是什么意思? - SRy
如果我点击HTML按钮,我需要调用JSF托管Bean的方法。 - Vijaykumar Ponnusamy
为什么你不想使用<h:commandButton>而是普通按钮? - SRy
这是我的情况。我没有使用任何<h:XXXX>东西,因为我直接获取所有HTML标签。 - Vijaykumar Ponnusamy
1
请发布相关代码,这样帮助会更容易。 - SRy
如果你只是使用HTML标签,而没有使用JSF和PrimeFaces,那么你的页面代码和后端bean的代码应该是什么样子的?请展示出来。 - partlov
1个回答

7

是的,这是可能的。Primefaces提供了一个有用的钩子来实现这一点,使用它的组件<p:remoteCommand>。它基本上为您提供了一个能够与您的bean进行通信的JavaScript函数。

基本用法示例:

视图:

<p:remoteCommand name="remote" actionListener="#{bean.listener}" update="text"/>
<h:outputText id="text" value="#{bean.text}/>
<div onclick="remote()">...<div>

豆子(The bean):
private String text = "Starting text";//getter + setter

public void listener(ActionEvent event) {
    text = "Text was changed via remote command";
}

在上面的例子中,远程命令会在单击您的<div>时执行。当然,通过单击按钮也可以调用相同的函数。
此外,查看Primefaces文档是明智的选择。

很好的答案。我花了一些时间才明白,基于你分配的p:remoteCommand名称,JavaScript函数会自动创建,并且必须与div onclick方法匹配...顺便说一句,你可以将“remote”更改为任何你想要的名称,以创建多个命令。 - Fuzzy Analysis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接