Passar valor para managedbean

4 respostas
A

Gente, como eu passo um valor que eu tenho dentro da minha página pro managedBean?

eu tenho um identificador de browser e uma classe que retorna o tipo de mensagem:

@ManagedBean
public class SelecionaCSS {

    public SelecionaCSS(String nome) {
        this.estilo(nome);
    }

    String nome;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void estilo(String nome) {
        if (nome.equals("chrome")) {
            setNome("chrome.css");
        } else if (nome.equals("ie")) {
            setNome("ie7.css");
        } else {
            setNome("firefox.css");
        }
    }
}

e eu quero passar o parâmetro do javascript para ele, como no exemplo:

<script>
            var ua = navigator.userAgent.toLowerCase();
            if (ua.indexOf("chrome") != -1) {
                alert("chrome")
            } else if (ua.indexOf("msie") != -1) {
                alert("ie")
            } else if (ua.indexOf("mozilla") != -1) {
                alert("mozilla")
            }
        </script>
        <link rel="stylesheet" href="http://localhost:8080/Padrao/scripts/css/${selecionaCSS.nome}" media="all"/>

como q eu passo esse valor?

4 Respostas

Polverini

vc passa via AJAX, procure por jquery ajax, vc vai passar o valor para a servlet que por sua vez repassa ao bean

dev.rafael

A string user-agent está presente no cabeçalho da requisição. Tudo que vocé precisa é:

HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String userAgent = req.getHeader("User-Agent");
A

mar como eu o aplico? tenho que criar um servlet pra isso?

dev.rafael

Não, basta colocar essas duas linhas de código no ManagedBean.

Criado 23 de fevereiro de 2011
Ultima resposta 23 de fev. de 2011
Respostas 4
Participantes 3