Questione : Obbligatorio selezionare (multiplo)

Ciao esperti.

I che ha difficoltà quando provano a legare una lista con prescelto (multiplo). entità del codice categoria del

The:: class= " lineNumbers " >
1 del >
il regime pubblico del codice categoria realizza Serializable {
	cancerTypes riservati di List;
} jsp " libero " di >

The del class= di
1 del >
							


I di select>
the che segue in BindException (errori): class= " lineNumbers " >
1 del >
org.springframework.validation.BeanPropertyBindingResult: errori 1
Errore del campo nell'oggetto “regime„ sul campo “cancerTypes„: valore rifiutato [[Ljava.lang.String; @4338fa]; codici [typeMismatch.regimen.cancerTypes, typeMismatch.cancerTypes, typeMismatch.java.util.List, typeMismatch]; discussioni [org.springframework.context.support.DefaultMessageSourceResolvable: codici [regimen.cancerTypes, cancerTypes]; discussioni []; messaggio di difetto [cancerTypes]]; messaggio di difetto [non riuscito per convertire valore di una proprietà di tipo [java.lang. Stringa []] a tipo required [java.util. Lista] per la proprietà “cancerTypes„; l'eccezione annidata è java.lang.IllegalArgumentException: Non può convertire il valore di tipo [java.lang. Stringa] a tipo required [com.oncozoom.protocol.entities.CancerType] per la proprietà “cancerTypes [0]„: nessun redattori di corrispondenza o idea " libera " trovata di >

Any del class= di strategia di conversione]
Thx!
class= del

Risposta : Obbligatorio selezionare (multiplo)

Lo ho riparato estendendo PropertyEditorSupport anziché CustomCollectionEditor ed inoltre ho aggiunto uguali al POJO per confrontare i IDs e funziona come un fascino.

Ringraziamenti per il vostro aiuto,
Ahmad
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
il codice categoria pubblico CancerTypePropertyEditor estende PropertyEditorSupport  {

	dao riservato di CancerTypeDAO;
	CancerTypePropertyEditor pubblico (dao di CancerTypeDAO, collectionType del codice categoria) {
		eccellente (collectionType);
	this.dao = dao;
	}
	
 
	@Override
	il setAsText vuoto del pubblico (testo della stringa) getta IllegalArgumentException {
		Obj = getValue dell'oggetto ();
		Lista della lista = obj (della lista);
		per (streptococco della stringa: text.split (“, ")) {
			list.add (dao.retrieveCancerType (Long.valueOf (streptococco)));
		}
	}
	
	@Override
	getAsText pubblico della stringa () {
		Albero mozzo di metodo Auto-generato TODO di //
		super.getAsText di ritorno ();
	} 
}

In regolatore:
 	@Override
	initBinder vuoto protettivo (richiesta di HttpServletRequest,
			Eccezione dei tiri del raccoglitore di ServletRequestDataBinder) {
		super.initBinder (richiesta, raccoglitore);
		binder.registerCustomEditor (List.class, “cancerTypes„,
			 nuovo CancerTypePropertyEditor (getCancerTypeDao (),
					 List.class)); /	nuovo CancerTypePropertyEditor ());		
	 }

In CancerType POJO (ignorare la variabile confusionaria che chiama):
	@Override
	uguali booleani pubblici (anObject dell'oggetto) {
		 se (posizione di segnale minimo del == del anObject) {
		        falso di ritorno;
		    } altrimenti se (questo anObject del ==) {
		        di ritorno allineare;
		    } altrimenti se (instanceof CancerType del anObject) {
		        CancerType finale aCountry = anObject (di CancerType);
		        aCountryId lungo = aCountry.getId ();
		        se (aCountryId! = posizione di segnale minimo) {
		            aCountry.getId di ritorno () .equals (identificazione);
		        }
		    }
		    falso di ritorno;
	}

La modifica:
							
									
Altre soluzioni  
 
programming4us programming4us