-
Notifications
You must be signed in to change notification settings - Fork 1
Extension NoView
moisespsena edited this page Mar 11, 2011
·
4 revisions
Sobrescreve br.com.caelum.vraptor.view.DefaultPageResult
para suportar metodos anotados com [[@NoView|https://github.com/moisespsena/vraptor/blob/master/src/com/moisespsena/vraptor/ext/noview/view/NoView.java]]
.
O Source completo deste recurso está em https://github.com/moisespsena/vraptor/tree/master/src/com/moisespsena/vraptor/ext/noview/view.
Veja:
@Resource
public class MyController {
@NoView
@Delete("/user/{user.id}")
public void removeUser(User user) {
// ..
// userDao.remove(user)
}
}
No exemplo acima, ao ser processado pelo vraptor, o metodo MyController.removeUser nao exijira que haja uma view (um arquivo .jsp, por exemplo) que corresponda a este metodo.
A anotacao na classe poderia ser utilizada para marcar todos os metodos do Controller:
@NoView
@Resource
public class MyController {
@Delete("/user/{user.id}")
public void removeUser(User user) {
// ..
// userDao.remove(user)
}
@Post("/user")
public void addUser(User user) {
// ..
// userDao.insert(user)
// ..
}
}
Uma outra utilidade deste recurso é inserir o conteudo de retorno direto no br.com.caelum.vraptor.view.HttpResult
:
@Resource
public class MyController {
private final HttpResult result;
public MyController(HttpResult result) {
this.result = result;
}
@NoView
@Path("/linux")
public void linux() {
result.body("Linux na Veia!!!");
}
}