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

  • MVC não é Model-View-Controller?

    by Aluisio Vanzolin,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    No texto acima existe o trecho: "A API MVC não deve ser confundida com o padrão de projeto Model-View Controller."
    Creio que esta afirmação não seja válida, pois é justamente esse o padrão utilizado porém na forma de Action Based.

  • Front-end do Java sem rumo

    by Jadson Santos,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

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

    O que eu acho é que em termos de tecnologia de view o Java tá perdido, não sabe para onde vai. Ai lá vai você perder tempo estudando JSF, MVC 1.0, Spring MVC, AngularJS, etc, etc, etc. Tecnologias que no final servem para fazer a mesma coisa.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT