gpt4 book ai didi

java - 在 XHTML 表单/Java PrimeFaces 中的多个按钮上使用 primefaces 对话框

转载 作者:行者123 更新时间:2023-11-30 04:31:41 25 4
gpt4 key购买 nike

我有一个问题,我对 primefaces 和 JSF 都很陌生,可能是我缺乏知识,但我还找不到答案,我有 XHTML-s,在主按钮上我有几个按钮,我写了一个反馈对话框,告诉操作成功,以及操作的名称。

出现对话框,看起来不错,但消息始终是我在最后一个按钮上指定的内容。也许我误解了这个概念,任何人都可以帮助我我做错了什么吗?

这里是代码:

bean

@ManagedBean
@ViewScoped
public class ActionSuccessController extends AbstractAction implements
Serializable {

public String setParam(String actionName) {
ResourceBundle messageBundle = ResourceBundle
.getBundle("hu.avhga.web.partner.messages");
description = messageBundle.getString("actionSuccess");
this.actionName = actionName;
return "";
}
...

我有按钮的主 XHTML

...
<p:commandButton id="lock"
value="#{msg['PartnerAdmin.button.lock']}"
action="#{partnerAccountAdminAction.lock}"
update=":partnerAccountAdminForm :actionSuccessForm"
disabled="#{partnerAccountAdminAction.disabledButtonMap.get('LOCK')}"
rendered="#{partnerAccountAdminAction.passwordAdmin}"
styleClass="gold"
onclick="#{actionSuccessController.setParam(msg['PartnerAdmin.button.lock'])}"
oncomplete="usersTableWidget.filter();actionSuccessDialogVar.show();"/>

<p:commandButton id="unlock"
value="#{msg['PartnerAdmin.button.unlock']}"
action="#{partnerAccountAdminAction.unlock}"
update=":partnerAccountAdminForm :actionSuccessForm"
disabled="#{partnerAccountAdminAction.disabledButtonMap.get('UNLOCK')}"
rendered="#{partnerAccountAdminAction.passwordAdmin}"
styleClass="gold"
onclick="#{actionSuccessController.setParam(msg['PartnerAdmin.button.unlock'])}"
oncomplete="usersTableWidget.filter();actionSuccessDialogVar.show();"/>

<p:commandButton id="suspend"
value="#{msg['PartnerAdmin.button.suspend']}"
action="#{partnerAccountAdminAction.suspend}"
update=":partnerAccountAdminForm :actionSuccessForm"
disabled="#{partnerAccountAdminAction.disabledButtonMap.get('SUSPEND')}"
rendered="#{partnerAccountAdminAction.userAdmin}"
styleClass="gold"
onclick="#{actionSuccessController.setParam(msg['PartnerAdmin.button.suspend'])}"
oncomplete="usersTableWidget.filter();actionSuccessDialogVar.show();"/>

<p:commandButton id="remove"
value="#{msg['PartnerAdmin.button.remove']}"
action="#{partnerAccountAdminAction.remove}"
update=":partnerAccountAdminForm :actionSuccessForm"
disabled="#{partnerAccountAdminAction.disabledButtonMap.get('REMOVE')}"
rendered="#{partnerAccountAdminAction.userAdmin}"
styleClass="gold"
onclick="#{actionSuccessController.setParam(msg['PartnerAdmin.button.remove'])}"
oncomplete="usersTableWidget.filter();actionSuccessDialogVar.show();"/>
...

此后我导入了以下 XHTML:

<p:dialog id="actionSuccessDialogId" header="#{actionSuccessController.actionName}"
styleClass="dialog" closable="false"
widgetVar="actionSuccessDialogVar" modal="true" appendToBody="true" dynamic="true"
resizable="false" showEffect="fade" hideEffect="explode">
<h:form id="actionSuccessForm" style="text-align:center;">
<h:outputText value="#{actionSuccessController.description}" />
<br />
<br />
<p:commandButton id="okButtonId" value="#{msg['Common.ok']}"
onclick="actionSuccessDialogVar.hide()"
type="button" />
</h:form>
</p:dialog>

我确信这些“setParam”总是运行,对我来说这似乎没有理由。那么问题又来了,为什么我总是得到“删除”属性的名称。是因为ajax吗?或者因为当我点击某个地方时这些都会运行?我有一点困惑。提前致谢!

最佳答案

简而言之,onclick 无法调用这样的 setter。您似乎想要将参数传递给您的 bean 操作,对吧?在这种情况下,您需要使用 f:setPropertyActionListener 标记。所以你的按钮看起来像这样:

<p:commandButton id="unlock"
value="#{msg['PartnerAdmin.button.unlock']}"
action="#{partnerAccountAdminAction.unlock}"
update=":partnerAccountAdminForm :actionSuccessForm"
disabled="#{partnerAccountAdminAction.disabledButtonMap.get('UNLOCK')}"
rendered="#{partnerAccountAdminAction.passwordAdmin}"
styleClass="gold"
oncomplete="usersTableWidget.filter();actionSuccessDialogVar.show();">
<f:setPropertyActionListener target="#{actionSuccessController.param}" value="#{msg['PartnerAdmin.button.lock']}" />
</p:commandButton>

f:setPropertyActionListener 使用 value 属性中指定的值调用目标中指定的 setter。

关于java - 在 XHTML 表单/Java PrimeFaces 中的多个按钮上使用 primefaces 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501296/

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