Pergunta : Obrigatório selecionar (o múltiplo)

Olá! peritos.

I am que tem problemas ao tentar ligar uma lista com seleto (múltiplo). entidade da classe do

The:: class= " lineNumbers " >
1 do >
o regime público da classe executa Serializable {
	cancerTypes confidenciais de List;
} jsp " desobstruído " de >

The do class= de
1 do >
							


I am de select>
the que segue em BindException (erros): class= " lineNumbers " >
1 do >
org.springframework.validation.BeanPropertyBindingResult: erros 1
Erro do campo no objeto “regime” no campo “cancerTypes”: valor rejeitado [[Ljava.lang.String; @4338fa]; códigos [typeMismatch.regimen.cancerTypes, typeMismatch.cancerTypes, typeMismatch.java.util.List, typeMismatch]; argumentos [org.springframework.context.support.DefaultMessageSourceResolvable: códigos [regimen.cancerTypes, cancerTypes]; argumentos []; mensagem do defeito [cancerTypes]]; mensagem do defeito [não são convertidos o valor dos bens imóveis do tipo [java.lang. Corda []] ao tipo required [java.util. Lista] para a propriedade “cancerTypes”; a exceção aninhada é java.lang.IllegalArgumentException: Não pode converter o valor do tipo [java.lang. Corda] ao tipo required [com.oncozoom.protocol.entities.CancerType] para a propriedade “cancerTypes [0]”: nenhuma editores de harmonização ou idéia " desobstruída " encontrada de >

Any do class= da estratégia de conversão]
Thx!
class= do

Resposta : Obrigatório selecionar (o múltiplo)

Eu reparei-o estendendo PropertyEditorSupport em vez de CustomCollectionEditor, e eu igualmente adicionei iguais ao POJO para comparar IDs, e trabalha como um encanto.

Agradecimentos para sua ajuda,
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:
a classe pública CancerTypePropertyEditor estende PropertyEditorSupport  {

	dao confidencial de CancerTypeDAO;
	CancerTypePropertyEditor público (dao de CancerTypeDAO, collectionType da classe) {
		super (collectionType);
	this.dao = dao;
	}
	
 
	@Override
	o setAsText vago do público (o texto da corda) joga IllegalArgumentException {
		Obj = getValue do objeto ();
		Lista da lista = obj (da lista);
		para (estreptococo da corda: text.split (“, ")) {
			list.add (dao.retrieveCancerType (Long.valueOf (estreptococo)));
		}
	}
	
	@Override
	getAsText público da corda () {
		Topo Auto-gerado TODO do método de //
		super.getAsText do retorno ();
	} 
}

No controlador:
 	@Override
	initBinder vago protegido (pedido de HttpServletRequest,
			Exceção dos lances da pasta de ServletRequestDataBinder) {
		super.initBinder (pedido, pasta);
		binder.registerCustomEditor (List.class, “cancerTypes”,
			 CancerTypePropertyEditor novo (getCancerTypeDao (),
					 List.class)); /	CancerTypePropertyEditor novo ());		
	 }

Em CancerType POJO (ignorar a variável desconcertante que nomeia):
	@Override
	iguais bôoleanos públicos (anObject do objeto) {
		 se (zero do == do anObject) {
		        falso do retorno;
		    } mais se (este anObject do ==) {
		        do retorno retificar;
		    } mais se (instanceof CancerType do anObject) {
		        CancerType final aCountry = anObject (de CancerType);
		        aCountryId longo = aCountry.getId ();
		        se (aCountryId! = zero) {
		            aCountry.getId do retorno () .equals (identificação);
		        }
		    }
		    falso do retorno;
	}

O Tag:
							
									
Outras soluções  
 
programming4us programming4us