有关详细想法,请参阅此问题(和答案)。这是一个基本的(如果可能,请运行此示例。您可以简单地单击标签并开始(无效!)文件上传):
我有一个<h:outputLabel>
调用一个不可见的<p:fileUpload>
. 它工作正常。现在,上面显示了这些错误消息(感谢 BalusC 提供的答案)。
<h:form>
<b:commandButton id="c" value="Invoke me" ajax="true"
update="bootsfaces_message" action="#{bean.message}" />
<p:fileUpload id="file-input" widgetVar="file-input" update="@form"
auto="true" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="10"
invalidSizeMessage="invalid size message"
fileUploadListener="#{bean.image}"
invalidFileMessage="invalid format" styleClass=" ui-helper-hidden" />
<h:outputLabel for="file-input_input"
onclick="PF('file-input').messageContainer.appendTo($('#bm'));">
LABEL
</h:outputLabel>
<h:outputText value="#{bean.file.fileName}" />
<br />
<h:outputText value="#{bean.file.size}" />
</h:form>
所以现在,错误消息被显示,但主题是<p:message
>。但该消息应始终看起来像来自 BootsFaces 的消息。您可以将其与单击按钮进行比较Invoke me
。只需将以下代码添加到Manageed Bean
:
public void message() {
FacesContext.getCurrentInstance().addMessage(
"",
new FacesMessage(FacesMessage.SEVERITY_ERROR, null,
"test message"));
}
正如答案中所指出的,JavaScript 是操纵 DOM 树的一种可能的解决方案。好吧,这不是我想要的(只是最坏的解决方案)。
是否有针对此类问题的 BootsFaces 特定解决方案?