BT

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

| por Rafael Sakurai Seguir 29 Seguidores em 10 jul 2015. Tempo estimado de leitura: 2 minutos |

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

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

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

Receber mensagens dessa discussão

MVC não é Model-View-Controller? by Aluisio Vanzolin

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

"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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

2 Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT