JSF: Qual a Melhor forma de trabalhar com Java Server Faces?

Olá pessoal!

Sei que minha pergunta pode soar até meio idiota, mas antes que tirem conclusões precipitadas quero explicar-lhes o motivo desta:

Na empresa que trabalho, nossos projetos eram em PHP, porém há aproximadamente 8 meses atrás, decidimos implantar a tecnologia java aqui, eu já havia feito um curso bem básico de Java EE, então comecei a botar em prática meus conhecimentos.
O problema, é que NINGUÉM, absolutamente NINGUÉM tem o menor conhecimento da linguagem aqui na empresa, logo, eu tive que me preocupar com toda a estrutura, consegui um servidor pra repositório, servidor de testes e sei que ainda falta muita coisa, preciso de ajuda pra implacar de vez com o Java aqui na empresa.

Nosso promeiro projeto foi baseado somente em JSP/Servlets, agora em novvo segundo projeto, resolvi estudar os frameworks Hibernate e JSF. Estamos indo bem, superamos problemas (principalmente de configurações), porém sempre me pergunto:

“Estamos trabalhando da maneira correta?”

Então decidi pedir ajuda ao pessoal aqui do GUJ pra saber se realmente estou trabalhando da maneira correta já que não tenho sequer projetos anteriores pra me basear, ou pessoas com experiência.

As perguntas são sobre JSF, e creio eu bem básicas, considerem como um pedido de opinião :smiley:

Estou trabalhando da seguinte forma:

  • Telas do sistema (views);
  • Um Managed Bean pra cada tela.

Vou dar um exemplo básico de como estou montando minhas telas:

<!-- TelaLogin.xhtml -->
<h:form>
	<h:inputText id="login" binding="TelaLogin.login"/>
	<h:inputText id="senha" binding="TelaLogin.senha"/>
	<h:commandButton action="TelaLogin.logar"/>
</h:form>

Blz, tenho um form com meus campos com o atributo binding apontando pra um atributo do meu managed bean.

//TelaLogin.java
public class TelaLogin{

	private HtmlInputText login;
	private HtmlInputText senha;

	public TelaLogin(){
		initComponents();
	}

	public void initComponents(){
		setLogin(new HtmlInputText());
		setSenha(new HtmlInputText());
	}

	public String logarAction(){
		if( (getLogin().getValue().toString().equals("user")) && (getSenha().getValue().toString().equals("senha")) ) {
			return "login.success";
		}
		return "login.failure";
	}
	
	//gettes and settes
}

Então, pra cada tela eu tenho um mbean que faz referência de todos os campos dela, controlando cada um da maneira que eu quiser.
Só que tem momentos que um mbean desse fica muito grande, de acordo com a quantidade de informações que eu preciso tratar da tela.

Essa é uma boa maneira de trabalhar com JSF? Por favor dêem suas sugestões. :smiley:

Sinceramente,

recomendo voces constratarem um consultor para guia-los nos primeiros passos, pode evitar muita dor de cabeça futura.

Eu também estou começando agora na utilização de JSF e não sei dizer se realmente é preciso um managed bean para cada tela (Não tenho feito dessa forma).

Deixo estes link do RichFaces que tem me ajudado muito a trabalhar como lado visual:

http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dropDownMenu

http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/index.html

Seria interessante o pessoal com mais experiência passar umas dicas, estou iniciando em JSF também e estou meio perdido, de como “separar” minha aplicação.

[ ]'s

[quote=bbmany]Eu também estou começando agora na utilização de JSF e não sei dizer se realmente é preciso um managed bean para cada tela (Não tenho feito dessa forma).

Deixo estes link do RichFaces que tem me ajudado muito a trabalhar como lado visual:

http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dropDownMenu

http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/index.html[/quote]

Como vc usa então?

Tipo, eu uso dessa forma, pq assim eu tenho controle total da minha tela, podendo tratar como uma aplicação desktop, desabilitar botões, esconder campos etc, sem uma vírgula de javascript, isso é bem interessante mas o problema tá sendo a organização.

De repente alguém com mais experiência com JSF podia dar umas dicas de utilização, pq realmente, sem nenhuma ajuda tá bem complicado =/

[quote=aleck]
Sinceramente,

recomendo voces constratarem um consultor para guia-los nos primeiros passos, pode evitar muita dor de cabeça futura.[/quote]

Essa seria a solução, mas infelizmente… rs

Os componentes do richfaces utilizam ajax. O programador não precisa saber JavaScript e não terá código explícito de JavaScript na sua página. Sei que o richfaces permite desabilitar botões, abas, opções de menu, combo. Não sei se permite esconder campos, mas já vi que é possível fazer aparecer outro campo de acordo com a opção escolhida em um comboBox.

Sobre como estou gerenciando as páginas… bem ainda não estou nessa fase. Estou fazendo primeiro o visual.
Para validar o login eu criei apenas um bean com os atributos login e senha, neste bean eu inseri os métodos de verificação (acredito que não seja correto, rs) mapeie o bean no faces-config.xml. Estou utilizando dessa forma apenas por enquanto e espero, assim como você, que alguém nos ajude mostrando como deve ser estruturada uma aplicação web. Em minhas pesquisas ainda não encontrei…

Inté