Erro ao salvar quando usa o Chrome

0 respostas
donny

Estou com um problema quando tento salvar os dados de um cadastro usando o Chrome. Se uso o FireFox funciona.

Tenho a página jsp abaixo como cadastro:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<c:if test="${not empty errors}">
	<c:forEach items="${errors}" var="error">
		${error.category} - ${error.message}<br />
	&lt;/c:forEach&gt;
&lt;/c:if&gt;
&lt;form action="${linkTo[ClienteController].salvar}" method="post" class="ajaxForm"&gt;
	
	&lt;fieldset&gt;
		&lt;legend&gt;Cadastro de Clientes&lt;/legend&gt;
	<br/>
		<p>
		&lt;input type="hidden" name="cliente.id" value="${cliente.id}" /&gt;
		&lt;label for="txtNome"&gt;Nome: *&lt;/label&gt;
		&lt;input type="text" id="txtNome" name="cliente.nome" value="${cliente.nome}" maxlength="255" autofocus="autofocus" /&gt;
		</p>
		
		<p>
		&lt;label for="txtEmail"&gt;Email: *&lt;/label&gt;
		&lt;input type="text" id="txtEmail" name="cliente.email" value="${cliente.email}" maxlength="255" /&gt;
		</p>
		
		<p>
		&lt;label for="txtTelefone"&gt;Telefone:&lt;/label&gt;
		&lt;input type="text" id="txtTelefone" name="cliente.telefone" value="${cliente.telefone}" maxlength="13" /&gt;
		</p>
		
		<p>
		&lt;label for="txtCelular"&gt;Celular:&lt;/label&gt;
		&lt;input type="text" id="txtCelular" name="cliente.celular" value="${cliente.celular}" maxlength="13" /&gt;
		</p>
		
		<p>
		&lt;label for="txtCPF"&gt;CPF:&lt;/label&gt;
		&lt;input type="text" id="txtCPF" name="cliente.cpf" value="${cliente.cpf}" maxlength="16" /&gt;
		</p>
		
		<p>
		&lt;label for="txtDtNascimento"&gt;Data de Nascimento:&lt;/label&gt;
		&lt;input type="date" id="txtDtNascimento" name="cliente.dtNascimento" value="${cliente.dtNascimento}" maxlength="255" /&gt;
		</p>
		
		<p>
		&lt;label for="txtObs"&gt;Observações:&lt;/label&gt;
		&lt;textarea rows="5" cols="20" name="cliente.observacoes"&gt;${cliente.observacoes}&lt;/textarea&gt;
		</p>
		
		<p>
			&lt;button type="submit" class="btnSalvar"&gt;Salvar&lt;/button&gt;			
			&lt;button id="btnPesquisar" class="btnPesquisar" type="submit" &gt;Pesquisar&lt;/button&gt;        
			&lt;button type="submit" class="btnExcluir" &gt;Excluir&lt;/button&gt;
			&lt;button id="btnCancelar" class="btnCancelar" type="reset" &gt;Cancelar&lt;/button&gt;
		</p>
	&lt;/fieldset&gt;
&lt;/form&gt;

Segue abaixo o código da chamada AJAX para salvar:

function configForm() {
	var options = {
		success : function(responseText, statusText, xhr, $form) {
			if (statusText == 'success') {
				$("table.display tbody tr").detach();
				oTable.fnReloadAjax();
				alternateButtons(false);
			}else if(statusText == "error"){
				console.log(statusText);
				}
		}, // post-submit callback

		clearForm : true, // clear all form fields after successful submit
		resetForm : true
	};
	
	$('.btnSalvar').click(function(e){
		 $('.ajaxForm').ajaxSubmit(options);
		 e.preventDefault();
	});
	
	$('.btnExcluir').live('click', function(e){
		 $('.ajaxForm').ajaxSubmit(options);
		 e.preventDefault();
	});
	
	actionRoot = $('.ajaxForm').attr('action');
}

O código do Controller. A execução para na linha: validator.onErrorSendBadRequest();

@Resource
public class ClienteController {

	private final Result result;
	private final Validator validator;
	private final Clientes clientes;
	
	public ClienteController(Clientes clientes, Result result, Validator validator){
		this.clientes = clientes;
		this.result = result;
		this.validator = validator;
	}
	
	@Get("/cliente/")
	public void index(){
		
	}
	
	@Get("/cliente/{id}")
	public void form(Long id){
		final Cliente cliente = clientes.obter(id);
		result.use(Results.json()).from(cliente).recursive().serialize();
	}
	
	@Transaction
	@Post("/cliente/")
	public void salvar(Cliente cliente){
		validator.validate(cliente);
		validator.onErrorSendBadRequest();
		clientes.saveOrUpdate(cliente);
		result.nothing();
	}
	
	@Transaction
	@Delete("/cliente/")
	public void excluir(Cliente cliente){
		clientes.excluir(cliente);
		result.nothing();
	}
	
	@Get("/cliente/pesquisar/")
	public void listar(Cliente cliente){
		List&lt;Cliente&gt; resultado = clientes.pesquisar(cliente);
		result.use(Results.json()).from(resultado).serialize();
	}
	
	@Get("/cliente/listar/")
	public void listar(){
		result.use(Results.json()).from(clientes.listarTodos()).serialize();
	}
}


Criado 23 de agosto de 2011
Respostas 0
Participantes 1