如何更改<p:fileupload>生成的验证消息的样式?

时间:2015-08-04 15:44:16

标签: jsf file-upload bootsfaces

请参阅this question (and answer)了解详细信息。这是一个基本的(请运行此示例,如果可以的话。您可以简单地单击标签并启动(无效!)文件上传):

我有一个<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&gt;。但是消息应该总是看起来像来自BootsFaces的消息。您可以点击按钮Invoke me进行比较。只需将以下代码添加到Manageed Bean

即可
public void message() {
    FacesContext.getCurrentInstance().addMessage(
            "",
            new FacesMessage(FacesMessage.SEVERITY_ERROR, null,
                    "test message"));

}

正如答案中所指出的,JavaScript是一种操纵DOM树的可能解决方案。嗯,这不是我想要的(只是最糟糕的解决方案)。

BootsFaces是否有针对这类问题的特定解决方案?

0 个答案:

没有答案