有了这个模式,当用户单击更新按钮时就会打开:
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="edit-modal-title">Editar Credencial</h5>
</div>
<div class="modal-body">
<table id="edit-credentialsTable">
<tr class="row">
<th id="edit-modal-user">Usuario</th>
<th id="edit-modal-pass">Clave</th>
<th id="edit-modal-notes">Notas</th>
</tr>
<tr class="row">
<td><input type="text" id="newUser"/></td>
<td><input type="text" id="newPass"/></td>
<td><input type="text" id="newNotes"/></td>
</tr>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
这是发布到控制器的JS代码:
$("#credentialsTable").on('click',"button[id^='edi-']", (e) => {
$('#credentialsModal').modal('hide');
$('#editModal').modal('show');
var credentialId = e.target.id;
var newUser = $('#newUser').val();
var newPass = $('#newPass').val();
var newNotes = $('#newNotes').val();
$.post( "/fisicHost/" + credentialId + "/credentials/update", data => {
console.log(data);
});
});
但是我从这里迷路了...我不知道如何处理更新以使其在前端显示。
我应该如何发布新编辑字段的值?我不应该在URL中发送它们,因为我知道这是一种不好的做法,对吧?
这是将处理帖子的控制器:
@RequestMapping(value = "/fisicHost/{id}/credentials/update", method = RequestMethod.POST)
public void updateCredential(@PathVariable(value = "id") String credId){
String[] parts = credId.split("-");
int id = Integer.parseInt(parts[1]);
Credential credential = credentialService.getCredentialById(id);
credentialService.update(credential);
}