Continuando com alguns assuntos que fazem parte da prova SCPJ, nesse post vou falar sobre a diferença entre Ordenado e Classificado.
Ordenado (Ordered) - É a ordem em que os elementos do conjunto serão mostrados na tela ao ser iterado. Um ArrayList é ordenado pela posição do índice. LinkedHashSet mantem a ordem estabelecida pela posição, o ultimo elemento a ser inserido sera o ultimo elemento do conjunto, diferentemente do ArrayList que você pode inserir um elemento em um índice especifico. Alguns conjuntos mantém a ordem natural dos elementos, esses conjuntos não são apenas ordenados, mas também classificados.
Classificados (Sorted) - Um conjunto classificado significa que a ordem do conjunto está determinada por alguma(s) regra(s), conhecida(s) como ordem de classificação. Semelhante ao order by do SQL.
A classificação é feita com base em propriedades do próprio objeto. Na maioria das vezes a ordem é feita utilizando a ordem natural, que nada mais é que a ordem alfabética para String e ordem numérica crescente para objetos Integer, porem e para Objetos do tipo por exemplo Cliente? Não existe uma ordem naturam para esse objeto, pelo menos até que o desenvolvedor crie uma, por meio do Comparator ou Comparable (você pode saber mais sobre elas clicando aqui e aqui)
segunda-feira, 25 de julho de 2011
quarta-feira, 13 de julho de 2011
Validando hora com Hibernate
Digamos que em alguma entidade você tem um campo Hora, e por algum motivo você vai utilizar ele como String em vez de Date ( @Temporal ), o campo vai precisar ser validado para não ser inseridos horários inválidos como 55:87, para resolver esse problema basta inserir uma anotação hibernate e o problema esta resolvido.
public class Pedido{ @Pattern(regex="^([0-1][0-9]|[2][0-3]):[0-5][0-9]$", message="Hora inválida") private String hora; //getters e setters }
Postado por
Cristiano da Silva Perez
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
0
comentários
às
11:17
quinta-feira, 7 de julho de 2011
Criar projeto Seam do zero + Hello World
Nesse post vou mostrar como criar o ambiente Seam e como fazer um Hello World.
Requisitos:
Eclipse
JBoos tools Tambem pode ser encontrado no Eclipse Market
JBoss Seam 2.2
JBoss Application Server 5.1
Postgres
Postgres JDBC
Primeiramente Instale o Postgres, após isso abra o Eclipse e entre no Eclipse Marketplace
No campo find procure por Jboss Tools e o instale, o download + instalação levara alguns minutos, após instalado reinicie o eclipse.
Descompacte o Jboss Seam e o Jboss Application Server, agora no eclipse clique em File > New > Other... , la procure por Seam Web Project.
Agora vamos ao que interessa, confugurar nosso projeto, em Project name coloque o nome do projeto, no meu caso vou usar o nome projeto, em Target runtime clique em New Runtime... , selecione o Jboss v5.0 e aperte em Next em Application Server Directory clique em Browser... e selecione o path da pasta do Jboss 5.1 Application Server, no meu caso H:/jboss-5.1.0.GA, após isso basta clicar em Finish.
Dynamic Web module version deixe 2.5
Target Server clique em new, escolha Jboss AS 5.1, next, Home directory coloque o path da pasta do Jboss 5.1 Application Server, no meu caso H:/jboss-5.1.0.GA, next, next, finish.
Deve ficar assim
de next, next, next, agora vamos configurar o Seam Facet, em Seam Runtime va em add..., browser e selecione o path da pasta do Seam, no meu caso H:\jboss-seam-2.2.2.Final, clique em finish.
Deploy as: marque EAR.
Database Type: PostgreSQL
Connection profile: New..., PostgreSQL, selecione o path onde foi salvo o postgres JDBC, coloque o username e o password no meu caso postgres / root, save password, Test connection para ver se esta conectando no banco normalmente, next, finish.
Pronto agora basta clicar em finish e esperar o projeto ser criado.
Deve ficar assim.
Serão criadas 4 pastas.
Vamos testar nosso projeto, inicie o jboss (hotkey ctrl + alt + r), com o servidor inicializado abra o browser e entre em http://localhost:8080/projeto/
Voce devera ver isso.
Agora vamos criar nosso Hello World
Clique em projeto > WebContent, botão direito new > Other... > xhtml page > coloque o nome de helloworld > finish
<html>
<head></head>
<body>
Hello world
</body>
</html>
Agora acesse http://localhost:8080/projeto/helloworld.seam
Pronto seu projeto Seam esta montado e seu Hello World criado.
Requisitos:
Eclipse
JBoos tools Tambem pode ser encontrado no Eclipse Market
JBoss Seam 2.2
JBoss Application Server 5.1
Postgres
Postgres JDBC
Primeiramente Instale o Postgres, após isso abra o Eclipse e entre no Eclipse Marketplace
No campo find procure por Jboss Tools e o instale, o download + instalação levara alguns minutos, após instalado reinicie o eclipse.
Descompacte o Jboss Seam e o Jboss Application Server, agora no eclipse clique em File > New > Other... , la procure por Seam Web Project.
Agora vamos ao que interessa, confugurar nosso projeto, em Project name coloque o nome do projeto, no meu caso vou usar o nome projeto, em Target runtime clique em New Runtime... , selecione o Jboss v5.0 e aperte em Next em Application Server Directory clique em Browser... e selecione o path da pasta do Jboss 5.1 Application Server, no meu caso H:/jboss-5.1.0.GA, após isso basta clicar em Finish.
Dynamic Web module version deixe 2.5
Target Server clique em new, escolha Jboss AS 5.1, next, Home directory coloque o path da pasta do Jboss 5.1 Application Server, no meu caso H:/jboss-5.1.0.GA, next, next, finish.
Deve ficar assim
de next, next, next, agora vamos configurar o Seam Facet, em Seam Runtime va em add..., browser e selecione o path da pasta do Seam, no meu caso H:\jboss-seam-2.2.2.Final, clique em finish.
Deploy as: marque EAR.
Database Type: PostgreSQL
Connection profile: New..., PostgreSQL, selecione o path onde foi salvo o postgres JDBC, coloque o username e o password no meu caso postgres / root, save password, Test connection para ver se esta conectando no banco normalmente, next, finish.
Pronto agora basta clicar em finish e esperar o projeto ser criado.
Deve ficar assim.
Serão criadas 4 pastas.
Vamos testar nosso projeto, inicie o jboss (hotkey ctrl + alt + r), com o servidor inicializado abra o browser e entre em http://localhost:8080/projeto/
Voce devera ver isso.
Agora vamos criar nosso Hello World
Clique em projeto > WebContent, botão direito new > Other... > xhtml page > coloque o nome de helloworld > finish
<html>
<head></head>
<body>
Hello world
</body>
</html>
Agora acesse http://localhost:8080/projeto/helloworld.seam
Pronto seu projeto Seam esta montado e seu Hello World criado.
Postado por
Cristiano da Silva Perez
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
0
comentários
às
19:48
segunda-feira, 4 de julho de 2011
Renderizar campos de acordo com o h:SelectOneRadio selecionado
Nesse post vou mostrar como você pode renderizar novos campos na tela de acordo com o botão Radio selecionado utilizando JSF e Seam.
Vamos criar o caso de um cliente que esta cancelando a assinatura de um serviço, e no formulário de cancelamento existe um radio com alguns motivos de cancelamento como preço, perdeu o interesse, conteúdo fraco, outro. Porem ao clicar em outro deve ser renderizado na tela um campo para ele inserir a justificativa, bem, vamos la.
Primeiro vamos criar um Enum para a justificativa.
public enum JustificativaEnum {
PRECO, PERDEU_INTERESSE, CONTEUDO_FRACO, OUTRO;
}
Agora na nossa view é onde a magia acontece.
<a4j:region id="motivoRadio">
<h:selectOneRadio id="cancelamento" value="#{cancelamento.motivoCancelamento}" required="true">
<s:convertEnum />
<s:enumItem enumValue="PRECO" label="Sem preenchimento" />
<s:enumItem enumValue="PERDEU_INTERESSE" label="Sem preenchimento" />
<a4j:support event="onclick" reRender="jutificativaField" />
</h:selectOneRadio>
</a4j:region>
<a4j:outputPanel id="jutificativaField">
<s:decorate rendered="#{cancelamento.motivoCancelamento == 'OUTRO' id="justificativa" template="/layout/edit.xhtml">
<ui:define name="label"> Justificativa </ui:define>
<h:inputText id="justificativa" value="#{avisoTolerancia.ocorrenciaString}" />
</s:decorate>
</a4j:outputPanel>
Pronto, toda vez que for clicado em um radio é feito o reRender do <a4j:outputPanel> quando for clicado em OUTRO a área para inserir a justificativa sera renderizada.
Vamos criar o caso de um cliente que esta cancelando a assinatura de um serviço, e no formulário de cancelamento existe um radio com alguns motivos de cancelamento como preço, perdeu o interesse, conteúdo fraco, outro. Porem ao clicar em outro deve ser renderizado na tela um campo para ele inserir a justificativa, bem, vamos la.
Primeiro vamos criar um Enum para a justificativa.
public enum JustificativaEnum {
PRECO, PERDEU_INTERESSE, CONTEUDO_FRACO, OUTRO;
}
Agora na nossa view é onde a magia acontece.
<a4j:region id="motivoRadio">
<h:selectOneRadio id="cancelamento" value="#{cancelamento.motivoCancelamento}" required="true">
<s:convertEnum />
<s:enumItem enumValue="PRECO" label="Sem preenchimento" />
<s:enumItem enumValue="PERDEU_INTERESSE" label="Sem preenchimento" />
<s:enumItem enumValue="OUTRO" label="Outro" />
</h:selectOneRadio>
</a4j:region>
<a4j:outputPanel id="jutificativaField">
<s:decorate rendered="#{cancelamento.motivoCancelamento == 'OUTRO' id="justificativa" template="/layout/edit.xhtml">
<ui:define name="label"> Justificativa </ui:define>
<h:inputText id="justificativa" value="#{avisoTolerancia.ocorrenciaString}" />
</s:decorate>
</a4j:outputPanel>
Pronto, toda vez que for clicado em um radio é feito o reRender do <a4j:outputPanel> quando for clicado em OUTRO a área para inserir a justificativa sera renderizada.
Postado por
Cristiano da Silva Perez
Enviar por e-mailPostar no blog!Compartilhar no TwitterCompartilhar no FacebookCompartilhar com o Pinterest
0
comentários
às
13:54
Assinar:
Postagens (Atom)