Vraag : Uitgezocht binden (Veelvoudig)

Hallo Deskundigen.

I am problemen hebben wanneer het proberen om een lijst met uitgezocht te binden (veelvoudig).

The klassenentiteit::
1:
2:
3:
4:
de openbare instrumenten Serializable van het klassenRegime {
	privé List cancerTypes;
} 


The jsp:
1:
2:
3:
							


I am de uitgezochte die doos krijgen met alle die punten in $ {cancerTypes} wordt bevolkt, maar het punt die in regimen.cancerTypes wordt vermeld zijn niet duidelijk als *selected*, ook wanneer het voorleggen van de vorm ik getting
the volgend in BindException (fouten) ben:
1:
2:
3:
org.springframework.validation.BeanPropertyBindingResult: fouten 1
De fout van het gebied in voorwerp „regime“ op gebied „cancerTypes“: verworpen waarde [[Ljava.lang.String; @4338fa]; codes [typeMismatch.regimen.cancerTypes, typeMismatch.cancerTypes, typeMismatch.java.util.List, typeMismatch]; argumenten [org.springframework.context.support.DefaultMessageSourceResolvable: codes [regimen.cancerTypes, cancerTypes]; argumenten []; standaard bericht [cancerTypes]]; standaarddie bericht [er niet in om is geslaagd om bezitswaarde van type om te zetten [java.lang. Koord []] aan vereist type [java.util. Lijst] voor bezit „cancerTypes“; de genestelde uitzondering is java.lang.IllegalArgumentException: Kan waarde van type omzetten niet [java.lang. Koord] aan vereist type [com.oncozoom.protocol.entities.CancerType] voor bezit „cancerTypes [0]“: geen passende redacteurs of omzettingsstrategie gevonden] idee 


Any hoe te om deze kwestie te bevestigen?
Thx!

Antwoord : Uitgezocht binden (Veelvoudig)

Ik bevestigde het door PropertyEditorSupport in plaats van CustomCollectionEditor uit te breiden, en ik heb ook Gelijken aan POJO toegevoegd om IDs te vergelijken, en het werkt als een charme.

Dank voor uw hulp,
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:
de openbare klasse CancerTypePropertyEditor breidt PropertyEditorSupport uit  {

	privé dao CancerTypeDAO;
	openbare CancerTypePropertyEditor (dao CancerTypeDAO, Klasse collectionType) {
		super (collectionType);
	this.dao = dao;
	}
	
 
	@Override
	openbare nietige setAsText (de tekst van het Koord) werpt IllegalArgumentException {
		Voorwerp obj = getValue ();
		De lijst van de lijst = (Lijst) obj;
		voor (de streptokok van het Koord: text.split („,“)){
			list.add (dao.retrieveCancerType (Long.valueOf (streptokok)));
		}
	}
	
	@Override
	openbaar Koord getAsText () {
		// TODO auto-Geproduceerde methodestomp
		terugkeer super.getAsText ();
	} 
}

In Controlemechanisme:
 	@Override
	beschermde nietige initBinder (verzoek HttpServletRequest,
			Het bindmiddel van ServletRequestDataBinder) werpt Uitzondering {
		super.initBinder (verzoek, bindmiddel);
		binder.registerCustomEditor (List.class, „cancerTypes“,
			 nieuwe CancerTypePropertyEditor (getCancerTypeDao (),
					 List.class)); /	nieuwe CancerTypePropertyEditor ());		
	 }

In CancerType POJO (negeer het verwarrende veranderlijke noemen):
	@Override
	openbare gelijken van Boole (Voorwerp anObject) {
		 als (anObject ongeldige ==) {
		        valse terugkeer;
		    } anders als (dit == anObject) {
		        ware terugkeer;
		    } anders als (anObject instanceof CancerType) {
		        definitieve aCountry CancerType = (CancerType) anObject;
		        Lange aCountryId = aCountry.getId ();
		        als (aCountryId! = verklaar) nietig {
		            keer aCountry.getId () .equals (identiteitskaart) terug;
		        }
		    }
		    keer vals terug;
	}

De markering:
							
									
Andere oplossingen  
 
programming4us programming4us