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

2 respostas
alanrmonteiro

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

2 Respostas

sergiolopes

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");
G

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.

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();
    }
}
Pois mesmo quando coloco @Path("novo_caminho") ele continua redirecionando parar contextoWeb/WEB-INF/jsp//.jsp.

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

Criado 2 de janeiro de 2010
Ultima resposta 2 de jan. de 2010
Respostas 2
Participantes 3