【发布时间】:2020-11-25 05:21:57
【问题描述】:
您好,我正在尝试复制到剪贴板按钮,是的,该按钮有效。只是真的很奇怪,当我打开页面时,消息咆哮已经弹出。相反,我希望它仅在“单击”我的命令链接时弹出。无论如何,我想向您展示我的 Bean 和索引,以便更好地了解我做错了什么......
public void successListener(final ClipboardSuccessEvent successEvent) {
final FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Success",
"Component id: " + successEvent.getComponent().getId() + " Action: " + successEvent.getAction()
+ " Text: " + successEvent.getText());
FacesContext.getCurrentInstance().addMessage(null, msg);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Link Halaman", "Berhasil Di Copy"));
}
public String messageGrowl(){
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("Link Copied Successfully" + ""));
return null;
}
public void errorListener(final ClipboardErrorEvent errorEvent) {
final FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
"Component id: " + errorEvent.getComponent().getId() + " Action: " + errorEvent.getAction());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
这是我的 index.html :
<p:commandLink id="share" onclick="#{homeMBean.messageGrowl()}">
<i class="fa fa-share-alt" style="color: black"/>
<h:outputText value=" Share" escape="false" style="color: black;"/>
</p:commandLink>
<pe:clipboard id="clipAjax" trigger="share" action="copy" text="http://localhost:8082/index.xhtml">
<p:ajax event="success" listener="#{homeMBean.successListener}" update="@form"/>
<p:ajax event="error" listener="#{homeMBean.errorListener}" update="@form"/>
</pe:clipboard>
<p:growl id="growled" showDetail="true" sticky="true" />
【问题讨论】:
-
您能否使用 PrimeFaces 测试创建一个可重现的小样本,以便我对其进行调试? github.com/primefaces/primefaces-test
-
我不认为我能做到,我非常抱歉,但我在我的代码中尝试了 2 种方法,successListener 和 messageGrowl。当我使用successListener时,当我打开页面时没有出现咆哮,当我点击我的共享命令链接时它也没有咆哮消息。
标签: jsf primefaces growl