Vraptor + Single page application

3 respostas
marcio89

Como eu retiro do Vraptor a decisão de saber qual View será chamada após a execução de um método.
Eu quero que quando o usuário digitar uma url no browser, essa url chame o index.html da aplicação e ele sim será responsável por determinar qual View será renderizada.

Acredito que alguém já deve ter feito algo parecido ?
Queria fazer o Vraptor funcionar junto com o https://github.com/backbone-boilerplate/backbone-boilerplate.

Valeu galera.

3 Respostas

Lucas_Cavalcanti

sobrescreva o componente PathResolver…

@Component
public class SinglePagePathResolver {

    public String pathFor(ResourceMethod method) {
        return "caminho/do/seu/index";
    }

}

é meio estranho isso de qqer forma… o ideal era vc redirecionar pra um jsp, pra vc ter a condição de saber qual lógica ele tá querendo chamar.

marcio89

Na verdade eu já tinha pensado nisso, fiz assim:

@Component
public class SimpleApplicationPathResolver implements PathResolver {

	public String pathFor(ResourceMethod method) {
		return "/WEB-INF/index.jsp";
	}

}
@Component
public class Ignore404 implements ResourceNotFoundHandler {

	Result result;

	public Ignore404(Result result) {
		this.result = result;
	}

	public void couldntFind(RequestInfo request) {
		this.result.use(Results.page()).defaultView();
	}

}

O problema, é que se eu colocar algum recurso na minha aplicação que não existe, ele vai retornar o index.jsp.
É meio perigoso, mas funciona. Ainda não achei nada melhor.

Pensei em fazer um Filter, logo depois do filtro do Vraptor. Esse filtro redirecionaria para o index.jsp.
É uma boa também.

Quando tiver a solução ideal eu posto aqui. Valeu.

fredericomaia10

Olá Marcio, achou uma boa solução pra isso?

Criado 13 de agosto de 2013
Ultima resposta 25 de out. de 2013
Respostas 3
Participantes 3