Demoiselle Framework's Blog

08/10/2010

Liberada a versão 1.0.0 do componente demoiselle-crud

Ontem, dia 07/10/2010, foi liberada a primeira versão do componente demoiselle-crud. Este componente contém uma série de abstrações de telas, da camada de visão, da camada de negócio e da camada de persistência, para quem pretende fazer crud. Juntamente com o componente, foi liberada a primeira versão estável da aplicação Simplify (aplicação do sample que tem o objetivo de demonstrar o uso do demoiselle-crud) e a versão 1.2.0 do archetype-webapp-sample. Esse arquetipo já se encontra disponível no catálogo de arquetipos do demoiselle e ele pode ser usado para se criar uma aplicação já com as configurações básicas necessárias para a utilização do demoiselle-crud. É importante lembrar que quem usar esse arquétipo, estará utilizando a versão 1.2.0 do framework demoiselle.

A documentação de referência do demoiselle-crud pode ser vista aqui.

Está disponível também um passo a passo, mostrando como criar uma aplicação utilizando o demoiselle-crud. Para visualizá-lo, clique aqui

18/08/2010

Novas funcionalidades do demoiselle_view versão 1.2

Arquivado em: Demoiselle,New Feature — Demoiselle @ 9:53
Tags: , , , , ,
  • Sincronização dos contextos de Mensagens do Demoiselle e do JSF

O Framework Demoiselle prove ao desenvolvedor um contexto de mensagens que pode ser utilizado em todas as camadas da aplicação. Neste contexto o desenvolvedor pode cadastrar diversos tipos de mensagens, nas diversas camadas da aplicação, exemplos:  Erros de negócio, informações e erros na persistência, indisponibilidade de serviços, entre outras.

A partir da versão 1.2 do Framework, o módulo view prove uma funcionalidade para automatizar a exibição destas mensagens na páginas JSF da aplicação. Para isso, o desenvolvedor necessita cadastrar um PhaseListener no arquivo faces-config.xml. A cada requisição do usuário, o Listener irá buscar todas as mensagens do contexto do demoiselle e irá incluir estas no contexto JSF (FacesContext).

Exemplo de uso

Passo 1 – Configuração do faces-context.xml (habilitar o mecanismo)

<faces-config>

<lifecycle>
<phase-listener>br.gov.framework.demoiselle.view.faces.message.MessageContextListener</phase-listener>
</lifecycle>

</faces-config>

Passo 2 – Configuração do demoiselle.properties (Opcional)

Para definir o locale que será usado nas mensagens basta adicionar a seguinte linha no arquivo demoiselle.properties
framework.demoiselle.view.faces.locale.priority = …

As opções são:
CLIENT: Utiliza o locale do cliente que está contido na variável request (Opção default)
APPLICATION: Utiliza o locale do JSF que está defido no arquivo web.xml
DEFAULT_VM: Utiliza o locale default da maquina virtual java (JVM)

Mais informações: https://sourceforge.net/apps/mantisbt/demoiselle/view.php?id=363

  • Tratamento de exceções na camada de visão

Na versão 1.2, o módulo view prove, opcionalmente, um tratamento para exceções geradas durante a execução de uma requisição que está sendo processada dentro de algum método do managed bean. A funcionalidade é implementada através de um ActionListener o qual deve ser adicionado para execução no arquivo web.xml.
O DemoiselleActionListenerImpl monitora exceções e caso identifique alguma, executa os passos abaixo para tratar esta:
1. Adiciona a mensagem da exceção no contexto JSF (FacesContext)
2. Define a página de destino da requisição, seguindo a seguinte ordem de prioridade:
- Anotação Navigation no método do Managed Bean
- Anotação Navigation na classe da exceção gerada
- Se mantem na mesma página da requisição

Exemplo de uso

Passo 1 – Adicionar o action listener no faces-context.xml

<application>

<action-listener>br.gov.framework.demoiselle.view.faces.DemoiselleActionListenerImpl</action-listener>


</application>

Passo 2 – Definir a regra de navegação

2.1 Regra de navegação no método do managed Bean

import br.gov.framework.demoiselle.view.faces.Navigation;

public class MeuManagedBean {

@Navigation(name=”destino_excecao”)
public String acao(){

return “destino_fluxo_normal”;
}


}

Sendo “destino_excecao” a página de destino em caso de exceção na execução do método

2.2 Regra de navegação na classe de exceção que será gerada

import br.gov.framework.demoiselle.view.faces.Navigation;

@Navigation(name=”destino_excecao”)
public class MinhaExcecao extends RuntimeException {

}

Toda exceção gerada do tipo MinhaExcecao será tratada direcionando o JSF para a página definida no @Navigation, “destino_excecao”. Lembrando que a prioridade será sempre da forma definida no item 2.1

Mais informações: https://sourceforge.net/apps/mantisbt/demoiselle/view.php?id=365

  • Sincronização das transações durante o ciclo de vida do JSF

Utilizando o DemoiselleActionListenerImpl, conforme demonstrado no tópico anterior, outra funcionalidade estará disponível para o desenvolvedor: A sincronização dos dados em memória no banco de dados.
Colocando o valor true na configuração “refresh” no arquivo de configuração do Demoiselle, o framework, antes de executar o commit das transações no banco de dados fará um flush (sincronização) no intuito de pegar alguma exceção de banco e possibilitar o tratamento desta utilizando o mecanismo descrito no tópico acima.

Exemplo de uso

Passo 1 – Adicionar o action listener no web.xml

<application>

<action-listener>br.gov.framework.demoiselle.view.faces.DemoiselleActionListenerImpl</action-listener>


</application>

Passo 2 – Configuração do demoiselle.properties

framework.demoiselle.view.faces.refresh=true

Mais informações: https://sourceforge.net/apps/mantisbt/demoiselle/view.php?id=365

Autor: Mario Costa

Tema: Rubric. Blog no WordPress.com.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 462 outros seguidores

%d bloggers like this: