gpt4 book ai didi

ajax - 如何使用 JSF 检测表单中的呈现事件?

转载 作者:行者123 更新时间:2023-12-02 00:15:33 24 4
gpt4 key购买 nike

考虑 JSF 页面中的以下表单:

<h:form id="countForm">
<h:outputText value="#{myBean.count}" />
<h:commandButton value="Increment the count!">
<f:ajax listener="#{myBean.increment()}" render="@form" />
</h:commandButton>
</h:form>

这个简单的代码将在用户通过 ajax 请求单击按钮时递增计数器。

假设我还想向用户显示一个警报,通知每当表单更新(重新呈现)时计数器的新值。我该怎么做?有没有类似下面的代码?

<h:form onUpdate="alert('the new value is #{myBean.count()}')">

我知道我可以使用 primefaces 的“oncomplete”方法,但事件将链接到按钮而不是表单,这不是我想要的。

计数器不是我想要做的,这只是一个简单的例子来更好地展示我的问题。

提前感谢您的帮助。

最佳答案

由于您的确切要求不明确,因此很难提供准确的答案。
1. 你试过<a4j:form>了吗?其中有 onComplete事件?它没有解决您的问题吗?
2. 如果您确实需要在表单重新呈现 后运行脚本,您可以输入<script>。表单内的标记并将 javascript 代码放入其中,如下所示。

<h:form id="frm">
<script>
alert('#{myBean.count()}');
</script>
</h:form>

每次呈现表单时都会显示此警报。
请注意,如果您需要阻止此 JS 在页面加载时运行,您可能需要添加如下条件。

<head>
<script>
var showAlert = false;
</script>
</head>
<body>
<h:form id="frm">
<script>
if(showAlert) {
alert('#{myBean.count()}');
}
showAlert = true;
</script>
</h:form>
</body>

关于ajax - 如何使用 JSF 检测表单中的呈现事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com