No vraptor metodos só redireciona /WEB-INF/jsp/<nome_do_controller>/<nome_do_metodo>.jsp.?

Ola Galera,

por padrao depois de executar um metodo o vraptor redireciona para contextoWeb/WEB-INF/jsp/<nome_do_controller>/<nome_do_metodo>.jsp. é possivel alterar este caminho?

Pois mesmo quando coloco @Path(“novo_caminho”) ele continua redirecionando parar contextoWeb/WEB-INF/jsp/<novo_caminho>/<nome_do_metodo>.jsp.

teria como eu fazer um redirecionamento para contextoWeb/novo_caminho ?

valeu

Oi Alan!

O padrão é esse que você falou. Mas dá pra ir pra outros lugares usando o Result:

result.use(page()).forward("outro.jsp");

Ou você pode alterar o comportamento padrão do vraptor. Da forma como o Sérgio indicou você tem que dizer a cada método para onde quer redirecionar. No meu caso eu uso JSPX, e meus arquivos ficam em /WEB-INF/jspx/modulo/controller.metodo.jspx. Abaixo meu código, que você pode facilmente adaptar as tuas necessidades.

[code]public class JspxPathResolver
implements PathResolver {

@Override
public String pathFor(ResourceMethod method) {
    final Class<?> clazz = method.getResource().getType();
    final String clazzName = clazz.getSimpleName();
    final Package pkg = clazz.getPackage();

    // tiles = /package.controller.path.tiles
    final StringBuilder s = new StringBuilder(60);
    s.append("/WEB-INF/jspx/");
    s.append(StringUtils.substringAfterLast(pkg.getName(), "."));
    s.append("/");
    s.append(StringUtils.substringBefore(clazzName, "Controller").toLowerCase());
    s.append(".");
    s.append(method.getMethod().getName().toLowerCase());
    s.append(".jspx");

    return s.toString();
}

}[/code]

@Path indica qual o URL corresponde ao método informado. Acho que você confundiu as coisas.