Problema com validação complexa

5 respostas
L

Estou com um problema na validação com Vraptor 3, no caso, é simplesmente um cadastro de usuário que pode ter uma ou muitas regras relacionadas.

Meu controller está assim:

@Path("/user/insert")
public void form()
{
  result.include("roleList", this.roleDao.listAll());
}
  
@Path("/user/edit")
public User form(Long user_pk)
{
  result.include("roleList", this.roleDao.listAll());
  return this.dao.find(user_pk);
}
  
@Post
public void save(User user, String confirmation)
{
  result.include("roleList", this.roleDao.listAll());
  if (user.getLogin().isEmpty())
    validator.add(new ValidationMessage("users.login_empty", "error"));
  if (user.getRole() == null)
    validator.add(new ValidationMessage("users.roles_empty", "error"));
  validator.onErrorUse(Results.page()).of(UserController.class).form();
  if (user.getUser_pk() == null)
    this.dao.insert(user);
  else
    this.dao.update(user);
}

Observe que tenho que verificar se alguma regra foi escolhida e é aí que está o problema. Meu JSP está assim:

<input type="text" name="user.login" id="user.login" value="${user.login}" />

<c:forEach var="r" items="${roleList}" varStatus="s">
  <c:set var="checked" value="false" />
  <c:forEach var="u" items="${user.role}">
    <c:if test="${r.role_pk == u.role_pk}">
      <c:set var="checked" value="true" />
    </c:if>
  </c:forEach>
  <input type="checkbox" name="user.role[${s.index}].role_pk" value="${r.role_pk}" <c:if test="${checked}">checked</c:if> /> ${r.name} - ${r.description}<br/>
</c:forEach>

Algém tem alguma sugestão para resolver esse problema? Estou parado nesse ponto há dias e estou sem idéias. O erro é esse:

javax.el.PropertyNotFoundException: Property 'role_pk' not found on type java.util.HashMap$Entry
	at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
	at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
	at javax.el.BeanELResolver.property(BeanELResolver.java:279)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
	at org.apache.el.parser.AstEqual.getValue(AstEqual.java:38)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:925)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_c_005fif_005f2(form_jsp.java:666)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_c_005fforEach_005f1(form_jsp.java:634)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_c_005fforEach_005f0(form_jsp.java:556)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp.access$18(form_jsp.java:531)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp$Helper.invoke0(form_jsp.java:862)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp$Helper.invoke(form_jsp.java:888)
	at org.apache.jsp.tag.web.templates.default_tag.doTag(default_tag.java:235)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_template_005fdefault_005f0(form_jsp.java:167)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspService(form_jsp.java:98)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:72)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at br.com.caelum.vraptor.view.DefaultPageResult$1.intercept(DefaultPageResult.java:104)
	at br.com.caelum.vraptor.proxy.AbstractCglibProxifier$2.intercept(AbstractCglibProxifier.java:38)
	at br.com.faster.controller.UserController$$EnhancerByCGLIB$$f183ccb4.form(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
	at br.com.caelum.vraptor.view.DefaultValidationViewsFactory$2.intercept(DefaultValidationViewsFactory.java:98)
	at br.com.caelum.vraptor.proxy.AbstractCglibProxifier$2.intercept(AbstractCglibProxifier.java:38)
	at br.com.faster.controller.UserController$$EnhancerByCGLIB$$f183ccb4.form(<generated>)
	at br.com.faster.controller.UserController.save(UserController.java:70)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:50)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:55)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
16/01/2010 01:10:41 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: net.vidageek.mirror.exception.ReflectionProviderException: Could not invoke method form
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:46)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:48)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:59)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:55)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: net.vidageek.mirror.exception.ReflectionProviderException: Could not invoke method form
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:45)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
	at br.com.caelum.vraptor.view.DefaultValidationViewsFactory$2.intercept(DefaultValidationViewsFactory.java:98)
	at br.com.caelum.vraptor.proxy.AbstractCglibProxifier$2.intercept(AbstractCglibProxifier.java:38)
	at br.com.faster.controller.UserController$$EnhancerByCGLIB$$f183ccb4.form(<generated>)
	at br.com.faster.controller.UserController.save(UserController.java:70)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:50)
	... 37 more
Caused by: br.com.caelum.vraptor.proxy.ProxyInvocationException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/user/form.jsp at line 42

39:         <c:forEach var="r" items="${roleList}" varStatus="s">
40:           <c:set var="checked" value="false" />
41:           <c:forEach var="u" items="${user.role}">
42:             <c:if test="${r.role_pk == u.role_pk}">
43:               <c:set var="checked" value="true" />
44:             </c:if>
45:           </c:forEach>


Stacktrace:
	at br.com.caelum.vraptor.view.DefaultPageResult$1.intercept(DefaultPageResult.java:107)
	at br.com.caelum.vraptor.proxy.AbstractCglibProxifier$2.intercept(AbstractCglibProxifier.java:38)
	at br.com.faster.controller.UserController$$EnhancerByCGLIB$$f183ccb4.form(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
	... 47 more
Caused by: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/user/form.jsp at line 42

39:         <c:forEach var="r" items="${roleList}" varStatus="s">
40:           <c:set var="checked" value="false" />
41:           <c:forEach var="u" items="${user.role}">
42:             <c:if test="${r.role_pk == u.role_pk}">
43:               <c:set var="checked" value="true" />
44:             </c:if>
45:           </c:forEach>


Stacktrace:
	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:72)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at br.com.caelum.vraptor.view.DefaultPageResult$1.intercept(DefaultPageResult.java:104)
	... 54 more
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.el.PropertyNotFoundException: Property 'role_pk' not found on type java.util.HashMap$Entry
	at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspService(form_jsp.java:105)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	... 68 more
Caused by: javax.el.PropertyNotFoundException: Property 'role_pk' not found on type java.util.HashMap$Entry
	at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
	at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
	at javax.el.BeanELResolver.property(BeanELResolver.java:279)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
	at org.apache.el.parser.AstEqual.getValue(AstEqual.java:38)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:925)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_c_005fif_005f2(form_jsp.java:666)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_c_005fforEach_005f1(form_jsp.java:634)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_c_005fforEach_005f0(form_jsp.java:556)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp.access$18(form_jsp.java:531)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp$Helper.invoke0(form_jsp.java:862)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp$Helper.invoke(form_jsp.java:888)
	at org.apache.jsp.tag.web.templates.default_tag.doTag(default_tag.java:235)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspx_meth_template_005fdefault_005f0(form_jsp.java:167)
	at org.apache.jsp.WEB_002dINF.jsp.user.form_jsp._jspService(form_jsp.java:98)
	... 71 more

5 Respostas

Lucas_Cavalcanti

parece que esse seu roleList é um Map… e o jeito de iterar nele eh assim:

<c:forEach var="r" items="${roleList}" varStatus="s">  
   ${r.key} => a chave
   ${r.value} => o valor
</c:forEach>
L

Não Lucas, é um List mesmo, essa aqui é a minha Entity que não tinha colocado:

@Entity
public class User
{

  @Id
  @GeneratedValue
  private Long user_pk;

  @NotNull
  private String login;

  @ManyToMany(cascade = CascadeType.REMOVE)
  private List<Role> role;
  
  public User()
  {
  }
  
  public Long getUser_pk()
  {
    return user_pk;
  }
  public void setUser_pk(Long userPk)
  {
    user_pk = userPk;
  }
  public String getLogin()
  {
    return login;
  }
  public void setLogin(String login)
  {
    this.login = login;
  }
  public List<Role> getRole()
  {
    return role;
  }
  public void setRole(List<Role> role)
  {
    this.role = role;
  }

}

O problema só acontece no momento da validação, eu insiro e edito normalmente, mas por algum motivo, quando caio na validação, vem o erro que descrevi antes.

Lucas_Cavalcanti

sei… que versão do vraptor vc tah usando? a 3.1?

Lucas_Cavalcanti

se estiver usando a 3.1, tente criar a classe MeuOutjector que está no final desse tópico: http://www.guj.com.br/posts/list/148774.java#807960

L

Show de bola Lucas, resolveu!!! Foi quase 1 semana quebrando a cabeça com esse problema.

Eu estou usando a versão 3.1 sim, a anterior tinha um bug na validação do tipo Date, mas está me parecendo um problema bem semelhante a este caso, será um bug também?

De qq forma, obrigado e um abraço.

Criado 16 de janeiro de 2010
Ultima resposta 17 de jan. de 2010
Respostas 5
Participantes 2