BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Java EE 8: JSF 2.3 ou MVC 1.0, eis a questão?

Java EE 8: JSF 2.3 ou MVC 1.0, eis a questão?

Favoritos

Manfred Riem, diretor de equipe técnica da Oracle, apresentou no JavaOne América Latina as novidades que teremos no JavaServer Faces 2.3 e com a nova API chamada MVC 1.0. A API MVC não deve ser confundida com o padrão de projeto Model-View Controller.

No JSF 2.2 foram incluídos algumas melhorias como: contratos de biblioteca de recursos (Resource Library Contracts), views sem estado, faces flow, upload de arquivos, entre outros.

Já no JSF 2.3 podemos esperar melhorias como: uma especificação mais clara, alinhamento com a API de CDI para injeção de FacesContext, validadores, conversores, e mais, além de melhorias relacionadas ao desempenho da API.

Nessa nova versão poderemos injetar por exemplo um session map:

@Named (value = "injectSessionMapBean")
@ApplicationScoped
public class InjectSessionMap2Bean implements Serializable {
  @Inject
  @SessionMap
  private Map<String, Object> sessionMap;
  ...
  }
}

Ou injetar um FacesContext:

@Named(value = "injectFacesContextBean")
@RequestScope
public class InjectFacesContextBean {
  @Inject
  FacesContext context;
  ...
}

Haverá suporte para mais tipos de dados no ui:repeat e h:dataTable e o @FacesDataModel irá permitir tipos genéricos.

Com relação à nova API MVC 1.0, já foram liberadas a especificação inicial da API e a implementação de referência. Seu uso será com base na API JAX-RS e no Java 8. Veja um exemplo de classe de controle:

@Path("livro")
public class livroController {
  @Inject
  private Catalogo catalogo;

  @Inject
  private Modelos modelos;

  @GET
  @Controller
  @Produces("text/html")
  @Path("view1/{id}")
  public String view1(@PathParam("id") String id) {
    models.put("livro", catalogo.getLivro(id));
    return "livro.xhtml";
  }
}

Para a camada de view, atualmente os padrões suportados pelo Java EE para mecanismos de view são JSP e JSF, mas a comunidade também está trabalhando e já temos suporte para AsciiDoc, Freemaker, Handlebars, JSR 223 (Groovy e Nashorn), Mustach, Thymeleaf e Velocity.

A escolha entre JSF, MVC ou ambos, indicou Riem, será de acordo com as necessidades do projeto. Deve-se levar em consideração que o JSF permite entregar interfaces de usuário consistentes e reutilização de componentes; e o MVC permitirá padronizar as abordagens com base em ação ou controle, além de possibilitar a escolha do modo como será renderizado os dados.

As APIs, na verdade, são complementares e podem ser usadas em conjunto. Para acompanhar as novidades Riem sugere usar a lista de discussão do JSF e do MVC, e os sites com exemplos do JavaServer Faces e do Ozark, implementação de referência do MVC 1.0.

O que você achou? Vai usar o JSF 2.3, MVC 1.0, ambos ou outra configuração?

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT