Problema: usuário seleciona as pessoas na lista, e clica em um botão para adicioná-las a um departamento.
Classes:
Pessoa{Long id,String nome, Departamento departamento}
Departamento{Long id, String descricao, List pessoasDoDepartamento}
Tenho a seguinte tabela na jsp que é gerenciada pelo jquery.datatables, (os dados do tbody estou simulando, pois eles vao vir do controller):
<table
id="basicTable"
class="table table-striped table-bordered responsive">
<thead class="">
<tr>
<th>Id:</th>
<th>Nome:</th>
<th>Selecionar</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>João</td>
<td><input type="checkbox"/></td>
</tr>
<tr>
<td>2</td>
<td>Pedro</td>
<td><input type="checkbox"/></td>
</tr>
<tr>
<td>3</td>
<td>José</td>
<td><input type="checkbox"/></td>
</tr>
</tbody>
</table>
//script
jQuery('#basicTable').DataTable({
"sPaginationType": "full_numbers",
"aoColumns": [
null,
null,
{
"mData":null,
"bSortable": false,
"bSearchable": false,
"mRender": function(obj){
var html= '<input type="checkbox"/>';
return html;
}
}
],
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": '<c:url value="/bens/json/datatables/paginate"/>',
"sServerMethod": "POST"
});
Considerações:
1 - criar um controller com escopo de conversação (no meu ver, é necessário para manter os objetos da lista) , onde:
iniciaria a conversação ao listar as pessoas: criando uma lista de pessoas selecionadas;
ao usuário selecionar uma pessoa na tabela, passava o id para um metodo seleciona que adicionaria na lista;
e terminaria a conversação quando o usuario informasse o departamento, setando em cada pessoa selecionada o departamento e gravando.
2 - De alguma forma passar esse array de id e o id do departamento informado para o controller:
var selectedIds = [];
$(":checked").each(function() {
selectedIds.push($(this).val());
});
Bom, com base no problema, preciso de algum caminho seja um desses dois que eu coloquei ou outros.