Sérgio Fantin

JSF, Flex, Scrum, REST…

Arquivo da categoria ‘JSF’

Qualidade com o JSFUnit – Artigo Java Magazine 91

Publicado por Sergio Fantin em maio 16, 2011

Venho divulgar meu artigo sobre testes unitários em aplicações que utilizam a tecnologia JSF, presente na edição 91 da revista Java Magazine. São apresentadas, de maneira prática, as principais características do framework JSFUnit, e como sua utilização pode auxiliar o desenvolvedor na identificação de erros na aplicação. Além da parte teórica, o artigo apresenta um projeto que pode ser baixado no site da revista.

Artigos desta edição:

Obrigado ao Eduardo Spínola, editor da Java Magazine, pelo convite!

Enviado em Artigo, Framework, JSF, JSFUnit, Maven | Deixar um comentário »

JSF – Alterando Skin RichFaces em tempo de execução

Publicado por Sergio Fantin em julho 14, 2010

RichFaces é uma biblioteca de componentes para aplicações que utilizam JSF. Uma das suas características mais poderosas é o uso embutido do AJAX em seus componentes, assim o desenvolvedor não precisa se preocupar em reiventar a roda criando funções JavaScript. De maneira simples podemos utilizar vários componentes complexos apenas inserindo-os em nossa aplicação.

Uma característica bem bacana é o suporte a skins que deixam a interface da aplicação padronizada.

Neste post irei demonstrar como modificar a skin do RichFaces em tempo de execução.

Estrutura do Projeto

Bean.java

public class Bean implements Serializable {

 private static final long serialVersionUID = -6042519587796329117L;

 private String skin;

 public String getSkin() {
 return skin;
 }
 public void setSkin(String skin) {
 this.skin = skin;
 }

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">
 <display-name>jsf</display-name>
 <welcome-file-list>
 <welcome-file>index.html</welcome-file>
 <welcome-file>index.htm</welcome-file>
 <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <servlet>
 <servlet-name>Faces Servlet</servlet-name>
 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
 <url-pattern>*.jsf</url-pattern>
 <url-pattern>*.faces</url-pattern>
 </servlet-mapping>

 <context-param>
 <param-name>org.ajax4jsf.SKIN</param-name>
 <param-value>#{bean.skin}</param-value>
 </context-param>

 <filter>
 <display-name>Ajax4jsf Filter</display-name>
 <filter-name>ajax4jsf</filter-name>
 <filter-class>org.ajax4jsf.Filter</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>ajax4jsf</filter-name>
 <servlet-name>Faces Servlet</servlet-name>
 <dispatcher>REQUEST</dispatcher>
 <dispatcher>FORWARD</dispatcher>
 <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>

 <context-param>
 <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
 <param-value>client</param-value>
 </context-param>
</web-app>

faces-config.xml

 <?xml version="1.0" encoding="UTF-8"?>

<faces-config
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
 version="1.2">

 <managed-bean>
 <managed-bean-name>bean</managed-bean-name>
 <managed-bean-class>br.com.serjaum.mb.Bean</managed-bean-class>
 <managed-bean-scope>session</managed-bean-scope>
 <managed-property>
 <property-name>skin</property-name>
 <value>blueSky</value>
 </managed-property>
 </managed-bean>

</faces-config>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="rich" uri="http://richfaces.org/rich"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Modificando RichFaces skin em runtime...</title>
</head>
<body>
<f:view>
 <h:form>
 <rich:panel header="Skin: #{bean.skin}" style="width: 300px">
 <h:panelGrid columns="2">
 <h:outputLabel value="Escolha " />
 <h:selectOneMenu value="#{bean.skin}" onchange="submit()">
 <f:selectItem itemLabel="emeraldTown" itemValue="emeraldTown" />
 <f:selectItem itemLabel="blueSky" itemValue="blueSky" />
 <f:selectItem itemLabel="ruby" itemValue="ruby" />
 <f:selectItem itemLabel="classic" itemValue="classic" />
 <f:selectItem itemLabel="deepMarine" itemValue="deepMarine" />
 </h:selectOneMenu>
 </h:panelGrid>
 </rich:panel>
</h:form>
</f:view>
</body>
</html>

Importando o projeto

  1. Baixe o projeto completo >>aqui<<;
  2. Descompacte o projeto no seu workspace;
  3. No Eclipse vá em: File –> Import –> General – Existing Projects into Workspace –> Next –> Selecione o projeto descompactado no workspace –> Finish.

Resultado

Até o próximo post!

Enviado em Java, JSF | 1 Comentário »

JSF – Agrupando elementos com SelectItemGroup

Publicado por Sergio Fantin em junho 25, 2010

Neste post irei demonstrar como agrupar elementos utilizando SelectItemGroup em componentes do tipo <h:selectOneMenu>.

Criei um projeto bem simples pra ilustrar o funcionamento do combo que poderá ser melhorado dependendo da necessidade.

Disponibilizei o projeto para download no fim do post.

Estrutura do projeto

Leia o resto deste post »

Enviado em Eclipse, Java, JSF | Deixar um comentário »

Eclipse Helios

Publicado por Sergio Fantin em junho 23, 2010

Acaba de ser lançada a nova release da IDE mais popular para o desenvolvimento de código Java denominada Eclipse Helios. A IDE é liberada sob a Eclipse Public License e já se encontra disponível para download.

A plataforma pra desenvolvimento web conhecida como WTP vem agora com suporte a JSF 2, Servlet 3 e Tomcat 7, além de debugger JavaScript em tempo de execução.

Outra característica nova é a Eclipse MarketPlace Client que provê uma maneira facilitada para a procura e instalação de novos plugins.

Novas features

  • Eclipse Communication Framework (ECF)
  • Java Devlopment Tools (JDT)
  • Javaserver Faces (JSF) Tools
  • PHP Devlopment Tools (PDT)
  • Rich Ajax Platform (RAP)

Bons códigos!

Enviado em Eclipse, Java, JSF, JUnit | Deixar um comentário »

JSF – Combo utilizando t:selectItems

Publicado por Sergio Fantin em maio 15, 2010

Neste post irei demonstrar a utilização do componente <t:selectItems>, que é componente responsável por popular os dados no componente <h:selectOneMenu>.

Utilizarei Tomcat, Hibernate e MySQL para a persistência de dados e disponilizarei o projeto para download.

Estrutura do projeto

Versões utilizadas

  • Eclipse 3.5.2
  • JDK 1.6
  • Tomcat 6.0.18
  • MyFaces 1.2.5
  • Tomahawk 1.1.8
  • RichFaces 3.3.1
  • Hibernate Annotations 3.4.0
  • Hibernate 3.3.1
  • MySQL 5
  • MySQL Query Browser 1.2

Leia o resto deste post »

Enviado em Framework, Hibernate, Java, JSF, JUnit, MySQL | 1 Comentário »

JSF – Combo utilizando f:selectItems

Publicado por Sergio Fantin em maio 15, 2010

Neste post irei demonstrar a utilização do componente <f:selectItems>, que é componente responsávelpor popular os dados no componente <h:selectOneMenu>.

Utilizarei Tomcat, Hibernate e MySQL para a persistência de dados e disponilizarei o projeto para download.

Estrutura do projeto

Versões utilizadas

  • Eclipse 3.5.2
  • JDK 1.6
  • Tomcat 6.0.18
  • MyFaces 1.2.5
  • RichFaces 3.3.1
  • Hibernate Annotations 3.4.0
  • Hibernate 3.3.1
  • MySQL 5
  • MySQL Query Browser 1.2

Leia o resto deste post »

Enviado em Hibernate, Java, JSF, JUnit, MySQL | 5 Comentários »

JSF – Validando Data Inicial e Data Final

Publicado por Sergio Fantin em maio 2, 2010

Ultimamente tenho percebido na lista JavaSF a dificuldade entre os desenvolvedores JSF iniciantes em validar dois campos contendo datas onde a data inicial deve ser menor que a data final.

Neste post irei demonstrar como utilizar um validador no Managed Bean sem a necessidade de registrá-lo no faces-config.xml.

Estrutura do projeto

Códigos

MB.java

public class MB {

private Date dataInicio;

private Date dataFim;

public void validateBeginDate(FacesContext context, UIComponent component, Object value) {

dataInicio = (Date) value;

}

public void validateEndDate(FacesContext context, UIComponent component, Object value) {

dataFim = (Date) value;

if (! dataFim.after(dataInicio)) {

throw new ValidatorException(new FacesMessage(“Data final maior que data inicial”));

} else {

throw new ValidatorException(new FacesMessage(“Datas OK”));

}

}

}

Leia o resto deste post »

Enviado em Java, JSF | 1 Comentário »

JSF – Aplicação rich:editor + Facelets

Publicado por Sergio Fantin em setembro 15, 2009

Neste post irei demonstrar a utilização do componente rich:editor que faz parte da biblioteca de componentes RichFaces.

O rich:editor é um componente usado para a criação de um editor em páginas. Seu uso é relativamente simples e o resultado é impressionante.

A aplicação consiste num cadastro de Rascunhos onde o usuário poderá cadastrar e remover seus rascunhos de uma forma prática e simples. Para gerenciar as sessões/transações do Hibernate criei um serlvet filter Open Session In View fazendo papel de um interceptador, que será executado a cada request e response.

Utilizarei Tomcat, Hibernate e MySQL para a persistência de dados e disponilizarei o projeto para download.

Estrutura do projeto

rich_editor

Versões utilizadas

  • Eclipse 3.4.1
  • JDK 1.6
  • Tomcat 6.0.18
  • MyFaces 1.2.5
  • RichFaces 3.3.1
  • Hibernate Annotations 3.4.0
  • Hibernate 3.3.1
  • MySQL 5
  • MySQL Query Browser 1.2

Códigos

Rascunho.java:

package br.com.serjaum.modelo;

@Entity
@Table(name="rascunho")
public class Rascunho implements Serializable{

 private static final long serialVersionUID = -6142163109498247473L;

 @Id
 @GeneratedValue(strategy=GenerationType.IDENTITY)
 @Column(name="RASCUNHO_ID")
 private Long id;

 @Column(name="titulo")
 private String titulo;

 @Temporal(TemporalType.DATE)
 @Column(name="data")
 private Date data = new Date();    

 @Lob
 @Column(name="conteudo")
 private String conteudo;

...
}

Leia o resto deste post »

Enviado em Facelets, Framework, Hibernate, Java, JSF, JUnit, MySQL | 5 Comentários »

JSF – Migrando CRUD para Facelets

Publicado por Sergio Fantin em setembro 3, 2009

Neste post irei fazer a migração da nossa aplicação JSF completa utilizando RichFaces + Hibernate + MySQL na prática para Facelets.

Algumas das características do Facelets:

  • Utilização do XHTML como camada de visão da aplicação;

  • Permite a criação de componentes reutilizáveis;

  • Aumenta a performance da aplicação de 30% até 50% comparado com JSP, pois não usa a compilação para servlet;
  • Criação simplificada de templates;

  • Uso de código JSF em tags HTML com o atributo jsfc (não é muito recomendado);
  • Camada de visão padrão para o JSF 2.0;

Mais informações >>aqui<<.

Versões utilizadas

  • Eclipse 3.4.1
  • JDK 1.6
  • Tomcat 6.0.18
  • MyFaces 1.2.5
  • RichFaces 3.3.1
  • Hibernate Annotations 3.4.0
  • Hibernate 3.3.1
  • MySQL 5
  • JUnit 4.5
  • Caelum Stella 1.2

Estrutura do projeto

crud_facelets

Leia o resto deste post »

Enviado em Facelets, Framework, Hibernate, Java, JSF, JUnit, MySQL | 21 Comentários »

JSF – Criptografia de senhas com MD5

Publicado por Sergio Fantin em agosto 31, 2009

Neste post irei mostrar um exemplo prático de criptografia MD5 para aplicações JSF.

A API Java implementa dois algoritmos de Message Digest: o MD5 e o SHA-1. O algoritmo MD5 é um algoritmo de hash de 128 bits unidirecional, por isso ele não pode ser transformado na mesma string que foi usada para gerar o código criptografado. Utilizarei a classe java.security.MessageDigest para implementar a aplicação proposta.

Estrutura do projeto

md5_estrutura

Versões utilizadas

  • Eclipse 3.5.0
  • JDK 1.6
  • MyFaces 1.2.5
  • RichFaces 3.3.1

Códigos

TransformaStringMD5.java:

package br.com.serjaum.util;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class TransformaStringMD5 {

 public static String md5(String senha) {
 String sen = "";
 MessageDigest md = null;
 try {
 md = MessageDigest.getInstance("MD5");
 } catch (NoSuchAlgorithmException e) {
 e.printStackTrace();
 }
 BigInteger hash = new BigInteger(1, md.digest(senha.getBytes()));
 sen = hash.toString(16);
 return sen;
 }
}

Leia o resto deste post »

Enviado em Framework, Java, JSF | 7 Comentários »

 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.