【问题标题】:Icons with a FacesMessage when validating验证时带有 FacesMessage 的图标
【发布时间】:2013-03-14 15:48:42
【问题描述】:

PrimeFaces/JSF 2.0

当您使用 p:message.... 并说您的 outputText 具有 required="true" 时,如果用户将该字段留空,您会在该字段右侧显示的消息中看到错误图标。

<!--  NAME -->
  <p:panelGrid styleClass="noBorders" columns="2" columnClasses="inputText" style="width:600px">
   <h:inputText id="Name" size="60" maxlength="70" required="true" styleClass="#{not     component.valid ? 'ui-input-invalid' : ''}" style="width: 300px" value="#{tinRequestBean.name}" >
    <f:validator validatorId="gov.irs.eservices.tm.validations.NameValidator" />
   </h:inputText> 
   <p:message for="Name" display="default" style="color: red" />
  </p:panelGrid>

但是,如果您使用 Validator 以某种方式检查字段的内容,标准 FacesMessage,即使使用 FacesMessage.SEVERITY_ERROR,错误图标也不会显示。

  if (msgStr.length() > 0) {
   FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "TIN: Validation error: "   msgStr, null);
   throw new ValidatorException(msg);
  }

有谁知道创建带有图标的 FacesMessage 的方法吗?它肯定不在构造函数中。

【问题讨论】:

  • 这不是标准的 JSF 特性。这是 PrimeFaces 的一项功能。该图标未在标准 JSF FacesMessage API 中定义。该图标在与&lt;p:message&gt; 关联的 CSS 中定义,它根据消息严重性有条件地更改。至于具体问题,你确定消息是&lt;p:message(s)&gt;而不是&lt;h:message(s)&gt;提供的吗?

标签: validation jsf primefaces icons


【解决方案1】:

&lt;p:message/&gt; 上设置display="both"(或者完全不使用该属性,both 是默认值)。这将显示文本和图标。据我所知,default 不是一个有效的选项

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 2013-12-30
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多