1

有关详细想法,请参阅此问题(和答案)。这是一个基本的(如果可能,请运行此示例。您可以简单地单击标签并开始(无效!)文件上传):

我有一个<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 特定解决方案?

4

0 回答 0