Vou começar em poucos dias, o desenhvolvimento de um sistema web. Estou escolhendo quais ferramentas usarei.
Um forte escudo que tenho na mão é o JSF com primefaces, pois já tenho bons conhecimentos o que facilitaria na produtividade.
A implementação JPA que desejo usar é o Hibernate. No entanto, gostaria de algumas dicas quanto essa arquitertura.
O que vocês me indicariam para controle transacional? O Hibernate já me fornece formas de controlar transação? Uma alternativa seria usar o Spring, mas será que comprometeria muito o desempenho do sistema?
Critiquem, apoiem, fiquem a vontade para comentar a arquitetura que estou imaginando…
O lado negativo do boostrap é a necessidade de construir tudo na mão, mas acredito que o esforço vale a pena, depois que você pega o geito o trabalho flui.
Para o controle das transações no Bean utilizo as “scope session” do JSF e as do banco faço na mão mesmo.
PS: Aproveitando a oportunidade, se alguém souber como utilizar a paginação do boostrap avisa, pois este foi o único componente que não consigo utilizar.
prog.tiago
Olá Alcionj,
Muito interessante sua resposta… Pesquisei sobre o bootstrap, até pensei em fazer as interfaces gráficas com ele.
Como você acessa os componentes do bootstrap com os ManagedBeans do JSF? Não consegui compreender.
Vlw!
A
alcionj
Segue abaixo um exemplo de um bean e um .xhtml de formulário.
Os imports dos .css e javascripts do boostrap estão no template “template=”/template/default_f4.xhtml", neste projeto criei alguns templates, pois assim só carreguei apenas o necessário em cada tela, deixando assim a página mais leve.
importjavax.faces.application.FacesMessage;importjavax.faces.bean.ManagedBean;importjavax.faces.bean.RequestScoped;importjavax.faces.context.FacesContext;@ManagedBean(name="contatoBean")@RequestScopedpublicclassContatoBean{privateStringnome;privateStringemail;privateStringmensagem;publicContatoBean(){}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}publicStringgetMensagem(){returnmensagem;}publicvoidsetMensagem(Stringmensagem){this.mensagem=mensagem;}publicvoidsalva(){// exemplo de retorno de mensagemFacesContext.getCurrentInstance().addMessage("formContato:system",newFacesMessage(FacesMessage.SEVERITY_INFO,"Enviado com sucesso!",null));// continua ...}publicvoidlimpa(){nome="";email="";mensagem="";}}
Note que estou setando o formuário e o parâmetro de retorno da mensagem individualmente:
FacesContext.getCurrentInstance().addMessage("formContato:system",newFacesMessage(FacesMessage.SEVERITY_INFO,"Enviado com sucesso!",null));
prog.tiago
Interessante,
Em resumo, o que você faz é aplicar os estilos do bootstrap nos componentes do jsf. Estou certo?
Se estou certo, não havia pensado nessa possibilidade.
A
alcionj
Isso mesmo …
Esqueci de falar, para o resto uso ui, <ui: repeater>, etc …
Espero ter ajudado.
prog.tiago
Haha.
Hoje a noite vou testar e amanhã compartilho aqui minhas impressões.
Quem mais quiser e puder dar opiniões, agradeço.
Vlw Alcionj.
prog.tiago
Alcionj,
Testei suas dicas e funcionou perfeitamente. Muito obrigado!