相关疑难解决方法(0)

JSF:检查<h:message for ="id"/>是否存在的更好方法

我有一个表单,其中需要在输入元素下方显示验证错误消息.需要通过在错误消息和输入文本周围显示错误气泡来突出显示错误.

为此,我需要检查单个元素的h:消息是否存在.我能够检查是否存在全局错误消息,如下所示

<h:panelGroup rendered="#{not empty facesContext.messages}"> 
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

我如何检查相同的特定客户端ID(比如名字).所以像

faceContent.messages("creditCardNo")
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案是创建一个自定义解析器,但想知道是否有更好的解决方案.

jsf jsf-2

20
推荐指数
1
解决办法
2万
查看次数

如何在验证错误时将ui-state-error类设置为h:selectOneMenu

我的网站上的所有下拉菜单都发生了一些奇怪的事情,当除输入之外的所有输入均发生验证错误时h:selectOneMenu,此css类将返回“ ui-state-error”。我需要设置此CSS类,以便在无效时可以用红色边框显示下拉列表。这是下拉列表:

 <div class="col-md-3 col-sm-3 col-xs-6">
  <div class="dd-arrow">
    <h:selectOneMenu id="ccExpMonth" styleClass="form-control" value="#{paymentMethodsBean.ccExpMonth}" label="#{lang['paymentmethods.expmonth']}">

      <f:selectItem itemLabel="" itemValue="#{null}" noSelectionOption="true" />
      <f:selectItems value="#{dropDownListBean.ccExpMonths}" var="ccExpMonth" itemLabel="#{ccExpMonth.desc}" itemValue="#{ccExpMonth.code}" />
    </h:selectOneMenu>
  </div>
  <p:message id="ccExpMonthMessage" for="ccExpMonth" styleClass="col-md-7 col-sm-6 col-xs-6" />
</div>
Run Code Online (Sandbox Code Playgroud)

支持豆:

@ManagedBean
@ViewScoped
@Data
@EqualsAndHashCode(callSuper = false)
public class PaymentMethodsBean extends BaseBean implements Serializable {
    @Size(max = 2)
    @NotBlank
    private String ccExpMonth;
    ...
}
Run Code Online (Sandbox Code Playgroud)

jsf

2
推荐指数
1
解决办法
1400
查看次数

可以从验证器类设置xp:control的styleClass吗?

对于表格,我为编辑框设置了一个有效期,例如:

<xp:inputText
    id="inpRiskFactors" 
    styleClass="inputEscalation"
    value="#{matterBean.matter.escRiskFactors}" 
    validator="#{matterValidators.valEscRiskFactors}"...
Run Code Online (Sandbox Code Playgroud)

以下是我的验证方法的片段:

public void valEscRiskFactors(FacesContext facesContext, UIComponent component, Object value) {        
        utils.printToConsole(this.getClass().getSimpleName().toString() + " - valEscRiskFactors(...), value = " + value.toString());
        String msg = null;
        if (value.toString().replaceAll("\\s+","").equals("")){
            msg = matterProp.getProperty("msg_valid_esc_risk_factors");
            FacesMessage message = new FacesMessage(msg);
            throw new ValidatorException(message);
        }       
    }
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以从此方法更改/设置调用组件(UIComponent组件)的styleclass属性?

对于用户来说,最好在xp上应用一些CSS:所需的控件并且不通过验证.

任何人都有一个线索如何实现这一目标?

jsf xpages

0
推荐指数
1
解决办法
45
查看次数

标签 统计

jsf ×3

jsf-2 ×1

xpages ×1