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 😉
Schreibe einen Kommentar