Li o post abaixo:
Porém, mesmo fazendo a anotação de PUT e DELETE com input hidden o objeto recuperado do lado do servidor é nulo.
Segue exemplo com PUT, todavia, com DELETE ocorre a mesma coisa:
CLIENTE:
HTML:
<form id="frmDocumentType" action="#">
<div class="form-group">
<label class="control-label">Nome</label>
<input id="txtName"
name="object.name" type="text" class="form-control " placeHolder=""
value="Teste 2" > <span class="help-block">
</span>
</div>
<div class="form-group">
<label class="control-label">ID Alternativo</label>
<input id="txtIdAlternative"
name="object.idAlternative" type="text" class="form-control size-small" placeHolder=""
value="unitTest" > <span class="help-block">
</span>
</div>
<div class="form-actions">
<div style="display: none;">
<input type="hidden" name="_method" value="PUT"></input>
<input name="object.uuid" type="hidden" value="73020212-448b-4848-8282-71d3fae26d14">
<input name="object.id" type="hidden" value="48">
<input name="formId" type="hidden" value="frmDocumentType">
</div>
<div class="btn-set pull-right">
<button type="button" id='btnDesist_frmDocumentType' class="btn default form-desist">Desistir</button>
<button type="button" id='btnSave_frmDocumentType' class="btn default green form-save">Salvar</button>
</div>
</div>
</form>
AJAX:
urlPersistence='
http://127.0.0.1:8084/application/documenttype/persist';
typeRequest='PUT';
formData = $('#frmDocumentType').serialize();
$.ajax({
url : urlPersistencia,
type : typeRequest,
crossDomain : true,
data : formData,
always: function(data) {
console.log( 'always data result:');
console.log( data );
},
success : function(data) {
console.log('Sucesso na persistência');
console.log(data);
});
SERVER:
@Controller
@Path("/documenttype")
public class DocumentTypeEntityController {
@Put( “/persist” )
public void persistUpdate(T object, String formId) {
// O object chega nulo.
}
}