VRaptor- Como Passar um parâmetro do jsp para uma classe SessionScoped?

Olá a todos,

tenho a classe UserSession com a annotation @SessionScoped. Ela guarda as informações do usuário que está logado.
Nela tenho um método que verifica se um usuário tem uma determinada permissão:

public boolean isPermitido(String permissao) { for (String str : this.getPermissoesUsuario()) { if (str.equalsIgnoreCase(permissao)) { return true; } } return false; }
Tem como eu chamar este método a partir de um jsp?
O que eu quero no meu jsp é ver se o usuário tem uma permissao específica para mostrar um botão:

<c:if test="${userSession.isPermitido('USUARICAD')}"> <!-- Tentei com aspas simples e duplas e chamando o método sem o 'is': userSession.permitido("USUARICAD") --> <span class="menuButton"><a class="button" href="../../APP/usuarios/novo">Novo </a></span> </c:if>

Quando eu chamo ele da forma acima lança uma exceção. Segue uma parte dela:

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: /WEB-INF/jsp/usuarios/list.jsp(10,51) equal symbol expected br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:69) br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:60) 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.interceptor.OutjectResult.intercept(OutjectResult.java:67) br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

org.apache.jasper.JasperException: /WEB-INF/jsp/usuarios/list.jsp(10,51) equal symbol expected org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88) org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:193) org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:148) org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1208) org.apache.jasper.compiler.Parser.parseElementsScriptless(Parser.java:1471)

tenta apenas com permitido(‘USUARICAD’).

Se não funcionar, mantendo a EL acima, tente com o método como get.

\o_

Da forma que estava tentei chamar o método com

1 - permitido('USUARICAD') e isPermitido('USUARICAD') 2 - permitido("USUARICAD") e isPermitido("USUARICAD")

mudei o método para get conforme vc sugeriu e também nao deu certo.

Será que vou ter que criar um método no controller para fazer isto?
Se desse para fazer na minha classe sessionScoped seria o ideal…

Obrigado!

a EL do jsp (a ${}) não suporta chamadas de métodos que não sejam getters.

dá pra criar uma taglib pra fazer isso, usar scriptlet, ou tentar usar a EL mais nova.