Moin,
ich möchte bestimmte Styles von Eingabefeldern bei fehlerhafter Eingabe ändern. Habe mir den unten stehenden Code aus dem Internet gezogen. Funkioniert soweit auch gut.
Problem: kopiere ich den gleichen Code in eine zweite Komponente (Eingabefeld), dann wird das erste Eingabefeld nicht mehr angezeigt. Systemmeldung: "PanelGrid form:grid has not enough children. Child count should be a multiple of the columns attribute." Habe Ihr eine Idee, wie ich das hinbekomme?
Achja, die Validierung erfolgt mittels BeanValidation über die ManagedBean "MeineBean".
Hier die Klasse ValidBean:
Und hier die zugehörige Eingabe-Komponente:
Merci + Gruß, Schackeline
ich möchte bestimmte Styles von Eingabefeldern bei fehlerhafter Eingabe ändern. Habe mir den unten stehenden Code aus dem Internet gezogen. Funkioniert soweit auch gut.
Problem: kopiere ich den gleichen Code in eine zweite Komponente (Eingabefeld), dann wird das erste Eingabefeld nicht mehr angezeigt. Systemmeldung: "PanelGrid form:grid has not enough children. Child count should be a multiple of the columns attribute." Habe Ihr eine Idee, wie ich das hinbekomme?
Achja, die Validierung erfolgt mittels BeanValidation über die ManagedBean "MeineBean".
Hier die Klasse ValidBean:
Java:
@ManagedBean
@RequestScoped
public class ValidBean {
private UIComponent myComponent;
public UIComponent getMyComponent() {
return myComponent;
}
public void setMyComponent(UIComponent myComponent) {
this.myComponent = myComponent;
}
public String getErrorStyle() {
FacesContext context = FacesContext.getCurrentInstance();
String clientId = myComponent.getClientId(context);
Iterator<FacesMessage> messages = context.getMessages(clientId);
while (messages.hasNext()) {
if (messages.next().getSeverity().compareTo(FacesMessage.SEVERITY_ERROR) >= 0) {
return "background-color: coral";}
}
return null;
}
}
Code:
<h:inputText id="meinInputFeld" required="true" size="4" maxlength="4" value="#{meineBean.meineVar}"
binding="#{validBean.myComponent}" style="#{validBean.errorStyle}">
<f:convertNumber/>
</h:inputText>
Merci + Gruß, Schackeline