The text is displayed in a p:inputTextarea. Rather than having to make the user click into the field, press CTRL+A and then CTRL+C, I put a p:commandButton on the dialog to provide the copy to the clipboard functionality instead.
However, when the page where the dialog is used is rendered, a bizarre error is produced:
Code: Select all
SEVERE: Servlet.service() for servlet [FacesServlet] in context with path [/DLSWeb] threw exception [Cannot find component for expression "<?xml" referenced from "modalXmlMessagePopupForm:copyXmlData".] with root cause
org.primefaces.expression.ComponentNotFoundException: Cannot find component for expression "<?xml" referenced from "modalXmlMessagePopupForm:copyXmlData".
at org.primefaces.expression.SearchExpressionFacade.cannotFindComponent(SearchExpressionFacade.java:702)
at org.primefaces.expression.SearchExpressionFacade.resolveClientIds(SearchExpressionFacade.java:249)
at org.primefaces.expression.SearchExpressionFacade.resolveClientIds(SearchExpressionFacade.java:143)
at org.primefaces.extensions.component.clipboard.ClipboardRenderer.encodeScript(ClipboardRenderer.java:53)
at org.primefaces.extensions.component.clipboard.ClipboardRenderer.encodeEnd(ClipboardRenderer.java:44)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:85)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72)
at org.primefaces.component.dialog.DialogRenderer.encodeContent(DialogRenderer.java:187)
at org.primefaces.component.dialog.DialogRenderer.encodeMarkup(DialogRenderer.java:116)
at org.primefaces.component.dialog.DialogRenderer.encodeEnd(DialogRenderer.java:48)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:89)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeMarkup(OutputPanelRenderer.java:65)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:41)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
Code: Select all
<pe:clipboard id="copyXmlData" trigger="cmdCopyXmlContent" action="copy"
target="#{xmlViewPopupController.xmlDisplay}">
<p:ajax event="success"
listener="#{xmlClipboardController.successListener}"
update="webServiceMessageListForm:webServiceMessageListFormGrowler" />
<p:ajax event="error"
listener="#{xmlClipboardController.errorListener}"
update="webServiceMessageListForm:webServiceMessageListFormGrowler" />
</pe:clipboard>
<p:commandButton id="cmdCopyXmlContent" icon="fa fa-copy" process="@this"
value="XML to Clipboard" action="copy" />
Using PF 6.1 and PFE 6.1.1.
Any ideas?