# Style bei fehlerhafter Eingabe (Bean Validation) ändern



## Schackeline (29. Jan 2011)

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:

```
@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;
	}
}
```
Und hier die zugehörige Eingabe-Komponente:

```
<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


----------



## KYLT (1. Feb 2011)

Hi, 
entwickelst du in JSF 1.2 oder 2.0? - Für letzteres schonmal versucht nur die StyleClass zu verändern?

```
styleClass="#{!component.valid ? 'error' : 'none'}"
```


----------



## Schackeline (1. Feb 2011)

Funktioniert super, vielen Dank! :applaus:
Ist immer wieder erschütternd zu sehen, welchen Aufwand man für Dinge betreibt, die so einfach zum Laufen zu bringen sind...;(


----------

