[RESOLVIDO]vRaptor - Error no formulario de editar

Possuo um metodo formulario ( com sua pagina jsp) que chama o form action=“salvar” (que tambem ja possui seu metodo no controller) ai na pagina formulario.jsp chamo a ação salvar, e funciona tudo direito.

ai criei uma lista de usuario que possui um botao editar ai quando clico ele me redireciona para a pagina editar.jsp e o form é a mesma ação action=“salvar” obs: no meu metodo salvar eu tanto salvo um usuario novo quanto atualizo, tem sua logica lá, enfim, o problema é que quando clico em salvar ele me retorna o seguinte:

“HTTP Status 404 - /rhunificado/usuario/editar/salvar”

sendo que uso essa mesma metodologia para o controlador produto e tbm nao funciona.

coloquei para debugar e quando chega na pagina editar.jsp e clico para enviar, ele nem se quer entra no metodo de salvar de usuario.

segue meu controlador e seus respectivos metodos de editar

@Get("/usuario/editar/{id}")
	public Usuario editar(int id) {
		extrairEmpresas(id);
		this.result.include("empresasList", this.empresas.getEmpresas());
		return this.userRep.load(id);
	}

e meu metodo salvar:

public void salvar(Usuario usuario) {
		Integer codigo = usuario.getCodigo();
		if(codigo == null || codigo == 0) {
			List<UsuarioCompany> companies = povoaUsuarioCompany(usuario);
			usuario.setEmpresas(companies);
			usuario.getPermissao().add("ROLE_USUARIO");
			usuario.setAtivo(true);
			this.userRep.save(usuario);
		} else {
			List<UsuarioCompany> companies = povoaUsuarioCompany(usuario);
			usuario.setEmpresas(companies);
			this.userRep.update(usuario);
		}
		result.redirectTo(this).listar();
	}

segue meu formulario do editar.jsp

[code]

Editar Usuário

		<input type="hidden" name="usuario.codigo" value="${usuario.codigo}" />
		
		<div class="control-group">
			<label for="nome"><fmt:message key="form.nome" /></label> <input id="nome" type="text"
				placeholder="<fmt:message key="form.nome" />" name="usuario.nome" value="${usuario.nome}" />
		</div>

		<div class="control-group">
			<label for="email"><fmt:message key="form.login" /></label> <input id="login" type="text"
				placeholder="<fmt:message key="form.login" />" name="usuario.login" value="${usuario.login}" />
		</div>

		<div class="control-group">
			<label for="senha"><fmt:message key="form.senha" /></label> <input id="senha"
				placeholder="<fmt:message key="form.senha" />" type="password" name="usuario.senha" value="${usuario.senha}" disabled="disabled" />
		</div>
		
		<hr/>
		
		<div class="input-append">
		  	<input class="span2" id="codigoDaEmpresa" placeholder="Codigo da Empresa" type="text"/>
		  	<button id="procurarEmpresa" class="btn" type="button"><i style="height: 18px;" class="icon-search"></i></button>
		</div>
		
		<div id="mostraEmpresa" class="cerca" style="background-color: #f5f5f5;">
			<div id="infoEmpresa">
				<label>Codigo:</label>
				<label>Descrição:</label>
				<label>Cnpj:</label>
			</div>
					
			<hr/>
			<button id="addEmpresa" class="btn" type="button">Adicionar</button>
		</div>
		
		<table id="empresaList" class="table table-bordered table-striped table-hover">
			<thead>
				<tr>
					<th>#</th>
					<th>Descricao</th>
					<th>Cnpj</th>
					<th>Remover</th>
				</tr>
			</thead>

			<tbody id="povoarEmpresa">
				<c:forEach items="${empresasList}" var="empresa">
					<tr>
					<td>${empresa.codigo}</td>
					<td>${empresa.descricao}</td>
					<td>${empresa.cnpj}</td>
					<td style="text-align:center;">
						<a style="text-align:center;" class="deleteRow" href="#">
							<img  alt="Excluir Empresa" src="<c:url value="/resources/img/icons/lixeira.png"/>">
						</a>
					</td>
					</tr>
				</c:forEach>
			</tbody>
		</table>


		<br/>
		
		<button type="submit" class="btn"><fmt:message key="form.botao.salvar" /></button>
	</fieldset>
</form>[/code]

o problema é que a sua action do form está batendo no lugar errado…

tente isso :

O problema está justamente na action dos DOIS forms…

Quando vc coloca action=“salvar” ele pega a url que você está e coloca “/salvar” depois dela… Esse é o padrão quando você não afirma aonde quer ir.

Faça o que o amigo acabou de dizer.

Obrigado a ambos, funcionou corretamente, nao sabia que podia passar c:url ali, obrigado.