Metodo GET com JSF 2 e facelets

6 respostas
M

Gostaria de passar um valor de uma varíavel pela url e recuperá-la em um bean.

Exemplo:

http://minhaurl.com/minhapagina.xhtml?var=5

Gostaria de pegar o valor 5 realizar algumas operações em um managebean e exibir o resultado em minhapagina.xhtml.

Alguma luz?

6 Respostas

R

JSF2 é feito para lidar com componentes, e para usar o método POST.

W

tente:

@ManagedProperty(value="#{param.var}") private Integer var;

M

Funcionou!! :smiley: …obrigado pela dica

Só lembrando pra quem for usar é necessário que o bean tenha o escopo request, se colocar escopo session ele disparará uma excessão como mostrada abaixo…

com.sun.faces.mgbean.ManagedBeanCreationException: Não foi possível criar o bean gerenciado testeBean. Os seguintes problemas foram encontrados: - O escopo do objeto referido pela expressão #{param.var}, request, é menor do que o escopo do bean gerenciado referido (testeBean) de session at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:263) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68) ...

M

Surgiu um problema :frowning: … eu não consigo criar um construtor no testeBean, assim para eu realizar alguma operação com o valor eu tive de fazer da seguinte maneira:

Criei um metodo get…

public int getDoblo (){ return this.var*2; }

Se eu tentar criar um construtor ele me retorna uma com.sun.faces.mgbean.ManagedBeanCreationException:

Alguem sabe me dizer porque eu não posso criar um construtor nesse caso?

G

Amigo, deixe de usar o @ManagegProperty e utilize o seguinte:

public TesteBean() {
FacesContext ctx = FacesContext.getCurrentInstance();
        HttpServletRequest req = (HttpServletRequest) ctx.getExternalContext().getRequest();

        String parametroRecebido = req.getParameter("nomeDoParamentro");

        if(parametroRecebido != null) {
            //Aqui você faz o tratamento do valor recebido via get
        } else {
            //Aqui você faz o tratamento para o caso de nenhum valor ter sido passado
        }

}

Abraços

H

Olá pessoal, BOM DIA!

PErdão por ressucitar o post pessoal, mas me surgiuu uma dúivida, pq o cara pega o valor da url por um parâmetro em vez de utilizar o bean?

Exemplo #{bean.value} = x;

??

Criado 4 de maio de 2011
Ultima resposta 4 de jun. de 2012
Respostas 6
Participantes 5