Category Archives: JSF 2.0

Limitando o tamanho do h:outputText do JSF !

E ai galera, beleza estou muito feliz com o blog, ja faz 1 ano que posto algumas coisas que me ajudam no dia-a-dia… vejo que o pessoal comenta agradecendo as infos, e isso me motiva cada vez mais a alimentar o blog com informações…

Hoje um amigo meu estava com um problema para limitar o tamanho do h:outputText do JSF
pois utilizando apenas, não funciona:

<h:outputText value="#{myBean.myText}" style="width: 100px;"/>

é Necessário adicionar mais essa propriedade:

<h:outputText value="#{myBean.myText}" style="width: 100px;white-space: normal"/>

Espero que ajude 😀 abraços!

Fonte: Suresh Kumar Pathak – Stackoverflow

Video Aula: Ciclo de Vida do JSF 2

Fonte: AlgaWorks

Integrando JSF 2 e Spring

É muito fácil encontrar material sobre JSF 2 de qualidade na internet, mas não se encontra uma forma fácil de realizar a integração com Spring, e quando encontrada, geralmente a integração é feita via xml. Nesse post será mostrado como fazer a integração entre essas duas ferramentas de uma maneira simples usando anotações e um mínimo de xml.

Para trabalhar com o JSF são necessários dois jars:

compile 'com.sun.faces:jsf-api:2.2.0-m04'
compile 'com.sun.faces:jsf-impl:2.2.0-m04'

Por parte do Spring, são os mesmos jars usados para integração com Struts:

compile 'org.springframework:spring-asm:3.1.1.RELEASE'
compile 'org.springframework:spring-beans:3.1.1.RELEASE'
compile 'org.springframework:spring-context:3.1.1.RELEASE' 
compile 'org.springframework:spring-core:3.1.1.RELEASE'
compile 'org.springframework:spring-expression:3.1.0.RELEASE'
compile 'org.springframework:spring-web:3.1.1.RELEASE'

A configuração no web.xml fica assim:

<web-app version=”2.5″ xmlns=”http://java.sun.com/xml/ns/j2ee&#8221;
<servlet>
<servlet-name>faces</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>faces</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
</web-app>
view raw web.xml This Gist brought to you by GitHub.

As tags servlet e servlet-name são para o uso “padrão” do JSF. A classe ContextLoaderListener é quem vai subir o contexto do Spring, também uma configuração comum. O que merece atenção aqui é o RequestContextListener, o qual vai expor o request para que o Spring possa manipulá-lo, permitindo assim que ele faça as injeções no momento adequado.

Por fim, há mais uma alteração que deve ser colocada no faces-config.xml:

<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>

JSF utiliza Expression Language (EL) para determinar a qual classe a página xhtml se refere. Fazendo uso de uma classe chamada ELResolver ele pega a String passada, a interpreta e faz a referência adequada. A classe SpringBeanFacesELResolver proporciona a integração entre os dois frameworks interceptando a requisição e passando-a para o contexto do Spring, o qual a manipula para prover as dependências requeridas pelos ManagedBeans, devolvendo-a em seguida para o ELResolver do próprio JSF.

Para ficar mais claro, vamos ao código. Abaixo, um Dao gerenciado pelo Spring:

@Repository("carroDao")
public class JdbcCarroDao implements CarroDao {

    // métodos aqui
}

Ao utilizar a anotação @Repository, se houver apenas uma implementação para CarroDao, geralmente para o Spring não é necessário que um nome seja especificado, mas ele se faz necessário ao trabalhar com JSF:

@ManagedBean
public class CarroBean {

    @ManagedProperty(name = "dao", value = "#{carroDao}")
    private CarroDao dao;

    public void setDao(final CarroDao dao) {
        this.dao = dao;
    }
}

Agora a anotação @ManagedProperty será usada não apenas para se referir ao que está no escopo web, mas também para lidar com os beans do Spring. A propriedade name é usada para indicar o nome do campo do managedBean, para que o JSF chame o setter adequado, enquanto a propriedade value vai ser usada para referenciar o nome do bean, no caso o carroDao anteriormente especificado.

E é só isso. Fazendo uso do fluxo do próprio JSF, e com algumas poucas configurações, o Spring proporciona uma integração simples e natural, que não altera em nada a forma de trabalhar com JSF.

Fonte: SimpleDev – Juliano Alves

Aplicação integrando JSF 2.0 + Spring 3 + Maven 2

Achei na net um código fonte de uma aplicação show de bola 😀 segue a baixo a descrição do autor:

Olá pessoal.
Acabo de colocar no github a APP que gerei aqui integrando os 3 frameowrks, JSF 2.0, Spring 3 e Maven 2.
O endereço é esse: GitHub AutoPecas
Em breve estarei disponibilizando a integração com o Spring Security.
A aplicação é bem trivial, apenas com cadastro de Perfil e Usuário, porém pode ser utilizada como
modelo para a criação de uma aplicação profissional utilizando essa gama de frameworks que permitem uma melhor produtividade.
Fiquem atentos, pois o repositório está sob constante atualização e em breve estarei postando essa nova integração.
Futuramente estarei criando um Post explicando como criar a aplicação passo a passo.
Ah, outro detalhe, juntamente com a aplicação, no pacote “Util” temos o script autopecas.sql que irá gerar um perfil e um usuário para acesso ao sistema.
Abraços e até a próxima,

Fonte: SempreJava – Leandro

Primefaces – JSF 2.0 Framework

https://i1.wp.com/www.primefaces.org/showcase-labs/images/logo.png

Aqui vai uma dica pra quem quer melhorar o visual da sua aplicação que utiliza o padrão JSF 2.0!

Primefaces é um ótimo framework pra deixar o visual da sua aplicação com um visual arrojado e super fácil de utilizar, no link abaixo tem diversos modelos utilizando seus componentes:
http://www.primefaces.org/showcase-labs/ui/home.jsf

O Primefaces oferece componentes para aplicações Web, Desktop e Mobile!
pra quem está afim de novas experiências, é só pegar a documentação e começar a brincar!