我有一个表单,其中需要在输入元素下方显示验证错误消息.需要通过在错误消息和输入文本周围显示错误气泡来突出显示错误.
为此,我需要检查单个元素的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)
我目前的解决方案是创建一个自定义解析器,但想知道是否有更好的解决方案.
我的网站上的所有下拉菜单都发生了一些奇怪的事情,当除输入之外的所有输入均发生验证错误时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) 对于表格,我为编辑框设置了一个有效期,例如:
<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:所需的控件并且不通过验证.
任何人都有一个线索如何实现这一目标?