Caricamento di un elenco su un bean
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.
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
}