jsf - validator mit den Parametern aus der Eingangs -
hier einen Teil meiner .xhtml-Seite:
<h:inputText id="kartNumIn" value="#{controller.mitarbeiter.kartenNummer}">
<f:attribute name="foo" value="controller.mitarbeiter.id" />
<f:validator validatorId="kartVal" binding="#{kartVal}" disabled="#{!controller.noUpdate}"/>
</h:inputText>
hier meine validate-Methode():
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
int id=(Integer) component.getAttributes().get("foo"); //always 0
int temp = (Integer) value;
if (!(value instanceof Integer)) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Eingabefehler", "FEHLER:Bitte geben Sie eine Zahl ein!"));
}
System.out.print("Input"+value+"Aktuelle"+component.getAttributes().get("foo").toString());
if (getAlleKartennummern().contains(temp) && temp!=id) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Kartennummerfehler", "FEHLER:Kartennumer bereits vergeben!"));
}
}
für mein validator brauche ich einen zweiten Wert. Hier muss ich die mitarbeiter.id
! für component.getAttributes().get("foo")
ich bekomme immer null....
- Bitte poste realen code, die Sie wirklich getestet wurde auf einem völlig leeren Spielplatz-Projekt mit allen Einstellungen auf Standard (so, dass man reprodice Ihre genaue problem einfach durch copy ' N 'Paste' N ' 'running den code ohne jegliche nicht-offensichtliche änderungen/Lunte). Den code gepostet, so weit zu sein scheint sorglos zu stark vereinfacht und entspricht nicht den Symptomen des Problems. Ich würde erwarten, dass einige mehr "Deutsche Gründlichkeit" von einem deutschen Entwickler 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
In dem Attribut, das Sie brauchen, um den Wert des Ausdrucks
sollte es
null
, die unmöglich wäre mit einem statischen string. Die Ursache ist wahrscheinlich, dass der Wert des Attributs ist abhängig von einer Variablen ist bekannt, nur beim Rendern des views Zeit, wie dievar
einer<h:dataTable>
.Ich glaube nicht, dass der OP ist daran interessiert, das problem mehr, aber wenn sich jemand anderes findet diese Frage:
Wird nicht funktionieren, da bekommst du einen String. Ein wenig seltsam, dass Sie schreiben, dass Sie immer null. Sollten Sie ein:
Wenn dies der Fall ist, versuchen Sie: