Boa tarde pessoal
Como que eu faço no JSF para criar uma variável no meu managedBean para que eu possa utilizar no meu xhtml? Por exemplo em Servlets & JSP eu faço assim:
// Servlet
request.setAttribute("screenName", "Novo Protocolo");
//JSP
${screenName}
Você estudou mesmo JSF ou está apenas tentando fazer algo sem sequer ter tido o trabalho de ler sobre?
Sim eu estudei, eu não quero que o meu managedBean tenha um atributo screenName e que meu xhtml obtenha ele pelo get explícito. Eu fiz a minha lição de casa 
Não se deixe enganar pelo fato de minha pergunta ser simplista, pode crer que tem algo muito maior por trás.
Se estudou, sabe em qual escopo está colocando e de que forma o EL do JSF obtém as variáveis, não é?
Você leu a minha dúvida?
Eu não quero ter em cada managementBean o código abaixo:
private String screenName;
public void setScreenName(String name) {
name = name;
}
public String getScreenName(){
return name;
}
#{screenName}
Eu quero encontrar uma outra forma de definir isso
[quote=saulo.bsi]Você leu a minha dúvida?
Eu não quero ter em cada managementBean o código abaixo:
private String screenName;
public void setScreenName(String name) {
name = name;
}
public String getScreenName(){
return name;
}
#{screenName}
Eu quero encontrar uma outra forma de definir isso[/quote]
Você mesmo está se subestimando.
Herança resolve isso fácil, fácil.
“Não quero usar herança”. Ok, é um direito seu.
Talvez se você estudar melhor o FacesContext e o ExternalContext possa resolver teu problema, não?
Afinal, você disse que estudou…
saulo.bsi como dsrmachado disse com herança vc resolve isso… faça uma classe pai q todas as outras herdarão dela, assim vc só precisa fazer uma vez… afinal, usar orientação a objeto sem usar um de seus pilares não faz sentido…
Ps.: um bean é extamente uma classe com apenas atributos e getter’s e stter’s… se for tirar isso não esta de acordo com o conceito da parada…
Beleza amigo, obrigado por me ajudar a solucionar o meu problema. Por que não pensei em herança ou polimorfismo.
Se eu quisesse uma “gabiarra mais inteligente” criaria uma interface onde eu teria um método para setar o valor do screenName e todos os meus managementBeans a implementariam. Más OK. Vamos ver alguém tem outra ideia para ajudar. Pense fora da caixinha.
Abraços
[quote=diogogama]saulo.bsi como dsrmachado disse com herança vc resolve isso… faça uma classe pai q todas as outras herdarão dela, assim vc só precisa fazer uma vez… afinal, usar orientação a objeto sem usar um de seus pilares não faz sentido…
Ps.: um bean é extamente uma classe com apenas atributos e getter’s e stter’s… se for tirar isso não esta de acordo com o conceito da parada…[/quote]
No caso, um BackingBean ou ManagedBean tem mais coisas que getters e setters, porém, o acesso padrão a atributos de um MB é feito pelos getters existentes nesta classe.
[quote=saulo.bsi]Beleza amigo, obrigado por me ajudar a solucionar o meu problema. Por que não pensei em herança ou polimorfismo.
Se eu quisesse uma “gabiarra mais inteligente” criaria uma interface onde eu teria um método para setar o valor do screenName e todos os meus managementBeans a implementariam. Más OK. Vamos ver alguém tem outra ideia para ajudar. Pense fora da caixinha.
Abraços[/quote]
Eu diria a você estude, pesquise e pense.
Ajuda muito a resolver problemas como este.
[quote=drsmachado][quote=diogogama]saulo.bsi como dsrmachado disse com herança vc resolve isso… faça uma classe pai q todas as outras herdarão dela, assim vc só precisa fazer uma vez… afinal, usar orientação a objeto sem usar um de seus pilares não faz sentido…
Ps.: um bean é extamente uma classe com apenas atributos e getter’s e stter’s… se for tirar isso não esta de acordo com o conceito da parada…[/quote]
No caso, um BackingBean ou ManagedBean tem mais coisas que getters e setters, porém, o acesso padrão a atributos de um MB é feito pelos getters existentes nesta classe.[/quote]
Sim… concordo… mas vi que além de precisar de ajuda o camarada é ignorante… então deixa quieto… ele quer ajuda mas não tem humildade acho que deveria fazer sozinho… bem fez vc que o mandou estudar… antes tivesse feito o mesmo, mas tento sempre a ajudar e sempre começo pelo simples… mas ele não entendeu desse jeito… então ache outro… vlw ae dsrmachado…
É por isso que a comunidade Java não vai pra frente.
Uns sabem mais que os outros, e infelizmente subestimam o conhecimento e experiência do outro baseado no números de mensagens postadas no fórum.
Abraços Pair programing
[quote=saulo.bsi]É por isso que a comunidade Java não vai pra frente.
Uns sabem mais que os outros, e infelizmente subestimam o conhecimento e experiência do outro baseado no números de mensagens postadas no fórum.
Abraços Pair programing[/quote]
uma simples resposta com educação poderíamos ter aumentado o grau de dificuldade e tinhamos tentado um resolução mais aprofundada, além de ter evitado essas conversinhas que de nada acrecentam… mas como faz questão de destacar que é pós-graduado, não deve precisar de ajuda pra pensar fora da “caixinha”, ainda mais depois de suas respostas…
Vlw XP…
[quote=saulo.bsi]É por isso que a comunidade Java não vai pra frente.
Uns sabem mais que os outros, e infelizmente subestimam o conhecimento e experiência do outro baseado no números de mensagens postadas no fórum.
Abraços Pair programing[/quote]
A comunidade java não vai para frente? Você vive em que época mesmo? Em 1995?
Então vamos lá, diga-nos o que você pesquisou?
Quais as fontes onde procurou?
Qual a dificuldade em conseguir fazer o que quer?
Eu fiz uma única pesquisa no google. No primeiro link disponibilizado pelo retorno da busca encontrei a solução para o problema.
Queria entender qual a dificuldade em fazer isso. Mas acho que pair programming nunca vai chegar ao nível do SCRUM, não é mesmo?
Obrigado a todos, consegui resolver!
Como o nosso camarada saulo.bsi não vai postar a resposta, afinal, ele sabe por que a comunidade java não vai para a frente, resolvi compartilhar a resolução do problema.
Em primeiro lugar, temos que entender que o JSF trabalha de uma forma diferente de um servlet.
Logo, isso
request/session.setAttribute("abc", "abc");
Deve ser adaptado à realidade.
O controle de toda a estrutura do JSF é feito pelo FacesContext, incluindo a árvore de componentes.
Assim sendo, é preciso obter o objeto desejado do FacesContext para, então, termos acesso à inserção de um atributo no mesmo.
Eu irei utilizar o escopo de sessão, obtendo o mapa de atributos da sessão.
Isso pode ser feito assim
Map<String, Object> session = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
Para inserir um valor no mesmo, preciso apenas invocar o método put:
session.put("atributoQueNaoTemNadaAVer", "Valor do Atributo Que Não Tem Nada a Ver");
Isso me possibilitará ter no FacesContext uma variável de nome atributoQueNaoTemNadaAVer.
Para recuperar seu valor, posso utilizar a EL da seguinte forma:
#{atributoQueNaoTemNadaAVer}
Se estudar um pouquinho, pode conseguir entender o que se passou e como acessar o mapa de atributos de request.
Bele…
Só esperar que ele ponha [RESOLVIDO] no tópico…