JSF Validierung von Benutzereingaben

Tarantoga

Aktives Mitglied
Hi,
ich habe folgendes Problem:

Untenstehendes Managed Bean übernimmt Eingaben aus einem Formular einer JSF-Page.
Dahinter steht noch ein StatelessSessionBean, welches den EntityManager zur Verfügung stellt und die EntityClass selbst.

Dieses Bean bietet mit der Methode "add" an, die Daten auf eine Datenbank zu schreiben.
Das funktioniert soweit.

Jetzt würde ich gerne eine Mehode oder Klasse haben, die die Eingaben überprüft (ob da tatsächlich was drin steht, ob es überhaupt eine Mailadresse ist, etc.), nur weis ich nicht recht wie ich da rangehen soll.

Hier mal das Bean:

@ManagedBean
public class mailadressManager {

@EJB
mailServiceEJB service;

private String names;
private String surnames;
private String mailadresses;

public String getMailadresses() {
return mailadresses;
}

public void setMailadresses(String mailadresses) {
this.mailadresses = mailadresses;
}

public String getNames() {
return names;
}



public void setNames(String names) {
this.names = names;
}

public String getSurnames() {
return surnames;
}

public void setSurnames(String surnames) {
this.surnames = surnames;
}



public void add () {

service.create(new Mailadress(getNames(), getSurnames(), getMailadresses()));

}


}



Und hier eine Hilfsklasse:

@ManagedBean
public class ValidatorMailData {

mailadressManager manager = new mailadressManager();

public mailadressManager addValid () {

if ((manager.getNames() == null && manager.getSurnames() == null && manager.getMailadresses() == null)
|| (manager.getNames().trim().isEmpty() && manager.getSurnames().trim().isEmpty() && manager.getMailadresses().trim().isEmpty()) )
{
return ;
}
else {
return ;
}


}



Ich glaube aber der Ansatz ist grundlegend falsch, ka bin noch eher neu in Java.

Wisst ihr wie ich diese Abfrage am besten einbauen könnte.

Also eine Abfrage, die die Eingaben checkt und wenn alles passt dann die add-Methode aufruft.

Danke schonmal im Voraus,
Tarantoga
 

brauner1990

Bekanntes Mitglied
Schreib doch einfach eine Validierungsklasse wo du alle Validierungmethoden static einpflegst mit den passenden Übergabeparamtern. Und diese Methoden bindest du vor der Persitierung ein.
 

Tarantoga

Aktives Mitglied
Dankeschön, habs geschafft.
Vorerst liegt die Validierungsmethode noch im selben Managed Bean, könnte es aber jederzeit auf eine neue Klasse auslagern.

Vielen Dank
 

brauner1990

Bekanntes Mitglied
Wenn es geklärt ist, am besten noch als Erledigt makieren und erklären wie, damit man auch noch später nachvollziehen kann wie du es gelöst hast....
 

jwiesmann

Bekanntes Mitglied
Evtl. solltest du solch "simple" Überprüfungen schon in der Weboberfläche machen um deinen Server ein bisschen zu entlasten.
Du könntest bsp. einen Submit Knopf solang deaktivieren, bis alle gültigen Eingaben gemacht wurden o.ä.
Ist aber wahrscheinlich Geschmacksache... muss man natürlich nicht so machen
Gruß
 

Tarantoga

Aktives Mitglied
Das tuts vorerst:

if ((getNames() == null | getSurnames() == null | getMailadresses() == null)
|| (getNames().trim().isEmpty() | getSurnames().trim().isEmpty() | getMailadresses().trim().isEmpty())
|| ((!getMailadresses().contains("@")) || (!getMailadresses().contains(".")) )
)
 

Ähnliche Java Themen

Neue Themen


Oben