Skip to content
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!!!");
	}
 
}
Clone this wiki locally