Skip to content

Instantly share code, notes, and snippets.

@AgtLucas
Created August 23, 2013 16:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AgtLucas/6321065 to your computer and use it in GitHub Desktop.
Save AgtLucas/6321065 to your computer and use it in GitHub Desktop.
Seam Framework presentation - 2
@Stateless
@Name("register")
public class RegisterAction implements Register {
// Annotation que indica que o atributo foi injetado pelo Seam, neste caso, injetado de contexto user
@In
private User user;
// EJB3 entity manager
@PersistenceContext
private EntityManager em;
// Usado para injetar a instância do componente Log
@Logger
private Log log;
// Listener de ação que usa a API padrão EJB3 EntityManager para interagir com o banco de dados, retorna JSF
public String register() {
List existing = em.createQuery("select username " +
"from User " +
"where username = #{user.username}")
.getResultList();
if (existing.size()==0) {
em.persist(user);
log.info("Registered new user #{user.username}");
return "/registered.xhtml";
} else {
// Componente do Seam, que permite mostrar mensagens de erro ou sucesso
FacesMessages.instance().add("User #{user.username} already exists");
return null;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment