Fråga : Valt band (multipeln)

Hi experter. förmiddagen för

I den har, besvärar, när den är pröva till röran en lista med valt (multipeln).

The klassificerar enheten:: för class=" codeSnippet " för
1 för >

allmänhet klassificerar diet genomför Serializable {
	privata List cancerTypes;
} jsp för >

The för <-/pre>
1 för >

							


I för select><-/pre>
the för bilda I efter i BindException (fel): för class=" codeSnippet " för
1 för >

org.springframework.validation.BeanPropertyBindingResult: fel 1
Sätta in felet anmärker in ”diet” sätter in på ”cancerTypes”: kasserat värdera [[Ljava.lang.String; @4338fa]; kodifierar [typeMismatch.regimen.cancerTypes, typeMismatch.cancerTypes, typeMismatch.java.util.List, typeMismatch]; argument [org.springframework.context.support.DefaultMessageSourceResolvable: kodifierar [regimen.cancerTypes, cancerTypes]; argument []; standardmeddelande [cancerTypes]]; standardmeddelande [som missas för att konvertera egenskapen, värdera av typ [java.lang. Stränga []] till required typ [java.util. Lista] för egenskapen ”cancerTypes”; bygga bo undantag är java.lang.IllegalArgumentException: Kan inte konvertera värderar av typ [java.lang. Stränga] till required typ [com.oncozoom.protocol.entities.CancerType] för egenskapen ”cancerTypes [0]”: ingen matcha redaktörer eller idé för >

Any för class= för omvandlingsstrategi funnen]
Thx!
" klar "

Svar : Valt band (multipeln)

Jag fixade det, genom att fördjupa PropertyEditorSupport i stället för CustomCollectionEditor, och jag har också tillfogat jämliken till POJOEN för att jämföra IDs, och den fungerar något liknande en berlock.

Tack för din hjälp,
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:
allmänhet klassificerar CancerTypePropertyEditor fördjupa PropertyEditorSupport  {

	privat CancerTypeDAO dao;
	offentliga CancerTypePropertyEditor (den CancerTypeDAO daoen, klassificerar collectionType) {
		toppet (collectionType);
	this.dao = dao;
	}
	
 
	@Override
	offentlig utan laga kraft setAsText (stränga text), kastar IllegalArgumentException {
		Anmärka obj = getValue ();
		Lista listar = (lista), obj;
		för (stränga stren: text.split (”,”)){
			list.add (dao.retrieveCancerType (Long.valueOf (str)));
		}
	}
	
	@Override
	allmänhet stränger getAsText () {
		// den TODO Auto-frambragda metoden stöter
		återgång super.getAsText ();
	} 
}

I kontrollant:
 	@Override
	skyddad utan laga kraft initBinder (den HttpServletRequest förfråganen,
			Undantag för kast för ServletRequestDataBinder limbindning) {
		super.initBinder (förfrågan, limbindning);
		binder.registerCustomEditor (List.class, ”cancerTypes”,
			 nya CancerTypePropertyEditor (getCancerTypeDao (),
					 List.class)); /	nya CancerTypePropertyEditor ());		
	 }

I CancerType POJO (ignorera den confusing variabeln som namnger):
	@Override
	offentliga boolean jämliken (anmärka anObject) {
		 om (ogiltig anObject==) {
		        gå falskt tillbaka;
		    } annars, om (denna ==anObject) {
		        återgångt true;
		    } annars, om (anObjectinstanceof CancerType) {
		        final aCountry CancerType = (CancerType) anObject;
		        Lång aCountryId = aCountry.getId ();
		        om (aCountryId! = ogiltigt) {
		            återgång aCountry.getId () .equals (ID);
		        }
		    }
		    återgångt falskt;
	}

Märka:
							
									
Andra lösningar  
 
programming4us programming4us