Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
JSF e Primefaces
Exibindo barra de progresso com JSF e Primefaces. O Prime Faces possui o
componente progressbar onde exibe uma barra de progresso enquanto um método
é executado sendo possível mostrar o status do progresso em percentual e
mensagens para o usuário ver o que esta ocorrendo.
Utilizar esse componente é interessante pois o usuário que acionou o método
percebe que o sistema de fato esta fazendo algo. Criei um exemplo com:
O exemplo a seguir ira processar uma quantidade de notas definido pelo usuário, o
progressbar ira mostrar o percentual de notas já processada e informando qual nota
esta no momento da ação, após a ação uma tabela ira ser apresentada com as notas
processadas e um botão de cancelar notas estará visível fazendo o mesmo processo
com o progressbar porem limpando a lista de notas.
dê nome ao projeto;
Selecione o servidor Apache Tomcat 8.0.27 e a especificação Java EE 7 Web;
E clique em finalizar.
Com o projeto criado vá em Propriedades > Frameworks e clique em adicionar e
selecione a opção Java Server Faces;
Defina a extensão que ira ser usada pelo JavaServer Faces,eu prefiro usar o .jsf ;
Marque a opção do Prime Faces e clique em OK;
(https://www.javaavancado.com/wp-
content/uploads/2016/10/progres-bar-
primefaces-17.png)
(https://www.javaavancado.com/wp-
content/uploads/2016/10/progres-bar-
primefaces-18.png)
(https://www.javaavancado.com/wp-
content/uploads/2016/10/progres-bar-
primefaces-19.png)
(https://www.javaavancado.com/wp-
content/uploads/2016/10/progres-bar-
primefaces-20.png)
h:form =formulário do jsf
p:messages = mostra mensagens criada
pelo facesmessage
o atributo closable=true significa que
será possível fechar a mensagem;
p:outputLabel = label usado para
relacionar com input text;
o atributo for=”qtd” corresponde ao id do
inputtext;
o atributo rendered=”#
{exemploBean.notas.size() eq 0}” significa
que esse label so será mostrado se a lista
de notas estiver vazia;
p:inputText= campo usado para digita
quantidade de notas;
o atributo required=”true” torna obrigatório a
informação dele;
f:validateLongRange =faz validação no
inputtext onde o valor minimum=”1″ e
maximum=”1000″;
p:commandButton =botão que chama um
método da classe;
o atributo onclick=”PF(‘pb’).start();PF
(‘poll’).start();” inicia o progressbar e o
atualizador da mensagem;
o atributo onstart=”PF(‘dlg’).show()”
exibite a janela do progressbar,;
o atributo oncomplete=”PF(‘dlg’).hide();PF
(‘pb’).cancel();PF(‘poll’).stop();” após a
finalização do método ira fechar a
janela,cancelar o progressbar e para o
atualizador de mensagem;
o atributo update=”:form :prg” atualiza os
dois forms da pagina;
o atributo actionListener=”#
{exemploBean.processarNotas(1)}” aciona
o método de processarNotas da classe
sendo que o parâmetro 1 significa ira
processar notas ,parâmetro 2 ira cancelar
as notas e 3 ira processar as notas porem
com erro. p:dataTable =lista de notas
processadas após a conclusão do método;
o atributo value=”#{exemploBean.notas}”
é a lista de notas;
o atributo var=”n” é o apelido para
represetar uma nota da lista,;
o atributo scrollable=”true” define que
ultrapassando a largura e altura definidas
um scroll devera ser inserido;
o atributo scrollHeight=”400″ define o
altura máxima antes do scroll,;
o atributo paginator=”true” define que ira
paginar a lista;
o atributo rows=”30″ define que ira
mostrar cada 30 registro por pagina;
o atributo rendered=”#
{exemploBean.notas.size() gt 0}” define
que datatable ira ser mostrado se a lista
de notas não estiver vazia.
f:facet = exibe um cabeçalho para a lista
de notas;
o atributo name=”header” significa que o
texto será exibido como cabeçalho;
p:column = coluna do datatable;
o atributo headerText=”Numero” é o
cabeçalho da coluna;