Domanda

Ho un bean remoto con un metodo che convalida un oggetto (restituendo vero o falso). Voglio essere in grado di passargli un oggetto ArrayList e fare in modo che l'EJB lo carichi con gli errori riscontrati durante la convalida, pur continuando a ricevere true / false come risultato.

Come posso farlo? Finora, posso inviargli l'elenco, ed è interessato dal lato server, ma l'elenco originale non viene modificato dal lato client.

È stato utile?

Soluzione

Questo perché quando l'elenco viene inviato tramite il filo al bean, una copia deve necessariamente essere fatta, perché l'elenco viene spostato da una JVM a un'altra. A differenza di un metodo normale, non è la stessa lista. Non so come funzionerebbe con i bean locali, ma non c'è altro modo con i bean remoti.

Suggerisco che il bean restituisca l'elenco e se è vuoto, l'oggetto è valido.

Ad esempio:

public List<String> methodWithValidation(Object input) {
    List<String> errors = new java.util.ArrayList<String>();
    //various validation tests, each adding a message on fail

    return errors;
}

E il metodo chiamante farebbe questo:

List<String> errors = bean.methodWithValidation(object);
if(!errors.isEmpty()) {
    //error logic
} else {
   //continue
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top