Boas galera, tenho a seguinte dúvida.
Tenho um formulário com três actions, update, delete, cancelar(retorna para a lista principal) vejamos o formulário.
Outra duvida, eu não sei se é bug, mais se eu fizer uma action /state/edit/1 por exemplo, da erro 404, agora se eu fizer assim /state, e anotar o metodo edit com @Get, e @Path("/state/{state.id}"), assim funciona, caso contrário não.
Isso é um bug ou eu estou fazendo alguma coisa errada?
@Resource
public class StateController {
//...
@Path("/state") @Get
public void lista() {//lógica de listar}
@Path("/state") @Put
public void atualiza() {//logica de atualizar}
@Path("/state") @Delete
public void remove() {//lógica de remover}
}
repare que a URI é a mesma, só que você está mudando o método HTTP que a lógica aceita…
pra passar parâmetros na URI você precisa usar o @Path, pq senão o vraptor não sabe onde colocar o parâmetro
então, o método StateController.edit(State state) por padrão aceita a URI /state/edit, sem parâmetros, mas se você
anotá-lo com @Path("/state/{state.id}") @Get, ele vai passar a aceitar requisições do tipo GET /state/42
e vai popular o parâmetro state.id com 42