Vraptor Enum

1 resposta
aquino.will

Pessoal,

Já tentei várias vezes procurei no no fórum mas não encontrei a solução.

Quero fazer um sistema de controle de usuarios.

Tenho um formulário de cadastro e com isso eu envio o plano que que o usuario gostaria de ter esse valores seria a minha classe Enum.

Na hora de cadastrar consigo pegar o valor do plano dele via input=“radio” , mas na hora de cadastrar não sei como fazer. Já tentei várias coisas mas não consegui.

Fiz uma classe de teste e funciona perfeitamente passando na mão o perfil dele

usuario.setPerfil(Perfil.light);

Se alguém poder me ajudar agradeço muito mesmo.

Abraços!

public enum Perfil {

	light, plus, master, administrador;
}


// UsuarioControlller

@Path("/usuarios/cadastro")
	public void cadastro(Usuario usuario, ModeloSite modeloSite){
		this.modeloSiteDAO.cadastra(modeloSite);
		
		Perfil perfil = usuario.getPerfil();
		//System.out.println("Esse é o perfil " + perfil);
		usuario.setPerfil(Perfil.light);

		
		if (perfil.equals("light")) {
			data.add(data.DAY_OF_YEAR,10);
			usuario.setDataExpiracao(data);
		}else
			data.add(data.YEAR,1);
			usuario.setDataExpiracao(data);
				
		this.usuarioDAO.cadastro(usuario);
		result.redirectTo(UsuarioController.class).listaUsuarios();
	}

// Modelo


@Enumerated(EnumType.STRING)
	private Perfil perfil;

public Perfil getPerfil() {
		return perfil;
	}
	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}



// Formulario de cadastro

Plano Contratado: <input type="radio" name="usuario.perfil" value="light" checked="checked" />Light | 
			   <input type="radio" name="usuario.perfil" value="plus" />Plus | 
			   <input type="radio" name="usuario.perfil" value="master" />Master </br></br>

Erro

java.lang.IllegalArgumentException: No enum const class br.com.SistemaCadastro.modelo.admin.Perfil.0
	java.lang.Enum.valueOf(Enum.java:196)
	org.hibernate.type.EnumType.nullSafeGet(EnumType.java:124)
	org.hibernate.type.CustomType.nullSafeGet(CustomType.java:132)
	org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)
	org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2267)
	org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1423)
	org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1351)
	org.hibernate.loader.Loader.getRow(Loader.java:1251)
	org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:619)
	org.hibernate.loader.Loader.doQuery(Loader.java:745)
	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	org.hibernate.loader.Loader.doList(Loader.java:2294)
	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172)
	org.hibernate.loader.Loader.list(Loader.java:2167)
	org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448)
	org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
	org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
	org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258)
	org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
	org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236)
	org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getResultList(CriteriaQueryCompiler.java:187)
	br.com.SistemaCadastro.DAO.admin.UsuarioDAO.listaTudosUsuarios(UsuarioDAO.java:28)
	br.com.SistemaCadastro.controller.admin.UsuarioController.listaUsuarios(UsuarioController.java:35)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.SistemaCadastro.interceptor.LoginInterceptor.intercept(LoginInterceptor.java:38)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.util.jpa.JPATransactionInterceptor.intercept(JPATransactionInterceptor.java:51)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

1 Resposta

aquino.will

Galera,

Um pessoal me ajudo e vi que tenho que fazer isso na minha Enum

public enum Perfil {

	 light("Ligth"), plus("Plus"), master("Master"), administrador("Admintrador");
	
	 private final String value;
	 
	 Perfil(String value) {
	      this.value = value;
	 }

	public String getValue() {
		return value;
	}
}

Mas agora como eu faço para chamar o meu Construtor da Enum e passar esse valor??

Estou tentando aqui mas não consigo. Se alguém poder me ajudar, agradeço muito.

Abraços!

Criado 29 de março de 2012
Ultima resposta 29 de mar. de 2012
Respostas 1
Participantes 1