Redirect sem o método

8 respostas
jingle

Estou querendo redirecionar para o meu jsp que fica dentro da pasta WEB-INF/jsp/widget/widgetAlerta.jsp
porém nao queria ter que criar o método widgetAlerta.

@Resource
public class WidgetController {
...
	@Post
	@Path("/widget/loadById/")
	public void loadById(String id) throws Exception {
                 //desta nao funciona ( tentei com as variantes /widgetAlerta.jsp , widgetAlerta, /widget/widgetAlerta.jsp)
		result.forwardTo("widgetAlerta.jsp");
                //desta forma da certo, porem nao quero ter que criar esse metodo
		result.forwardTo(this.getClass()).widgetAlerta();
	}

	public void widgetAlerta() {
		//não quero usar esse método
	}
}

8 Respostas

romarcio

Será que vc não precisa colocar o caminho todo, desde a raiz do WEB-INF ?

tipo result.forwardTo("../../widgetAlerta.jsp");

Da uma tentada.

G

Tudo que está dentro do /WEB-INF não é acessível externamente. Ou seja, você nunca consegue fazer redirect para algo dentro do WEB-INF. O correto é você sempre passar pelas actions do vraptor e dalí você acessar seus JSPs via forward.

jingle

=/…

é que eu tenho um esse método mas ele esta em outra classe, e se eu usar o redirect aquele ele vai acaba buscando o jsp em outra pasta por padrão…
só queria fazer ele usar um jsp diferente, mas vou ter que procura outra solução então =S

G

=/…

é que eu tenho um esse método mas ele esta em outra classe, e se eu usar o redirect aquele ele vai acaba buscando o jsp em outra pasta por padrão…
só queria fazer ele usar um jsp diferente, mas vou ter que procura outra solução então =S

Faz um forward para esse JSP não resolve? TEM que ser um redirect?

jingle

=/…

é que eu tenho um esse método mas ele esta em outra classe, e se eu usar o redirect aquele ele vai acaba buscando o jsp em outra pasta por padrão…
só queria fazer ele usar um jsp diferente, mas vou ter que procura outra solução então =S

Faz um forward para esse JSP não resolve? TEM que ser um redirect?

pode ser sim foward… eu que me confundi na hora de criar nome do tópico até msmo se olha o exemplo que tentei fazer foi com fowards.

Lucas_Cavalcanti
result.forwardTo("/WEB-INF/jsp/widget/widgetAlerta.jsp");

isso funciona…

mas qual o problema de criar o método em branco?

jingle

Lucas Cavalcanti:
result.forwardTo("/WEB-INF/jsp/widget/widgetAlerta.jsp");
isso funciona…

mas qual o problema de criar o método em branco?

é porque é pra ser algo meio dinâmico, onde vai ser gravado no a classe que vai ser chamada, e não queria ter que fica mexendo em código existente toda vez que for preciso criar um novo widget, então desta forma só precisaria criar uma classe pra trabalha com conteúdo dele e um jsp pra trabalha com a interface.

(valeu tentei no foward de tudo que é forma do “/widget” em diante, mas nem tinha me passado pela cabeça por desde o web-inf)

Lucas_Cavalcanti

de qqer forma, crie uma lógica do tipo:

public void widget(String nome) { //enum talvez? ou outra classe?
    result.forwardTo("/WEB-INF/jsp/widgets/" + nome + ".jsp");
}

daí vc faria o forward:

result.forwardTo(Classe.class).widget("abobrinha");

melhor do q ficar espalhando isso pelo código todo

Criado 30 de junho de 2010
Ultima resposta 30 de jun. de 2010
Respostas 8
Participantes 4