Para voce entender melhor ainda segue o codigo do Formulario 1 sem problema algum.
Metodo Salvar na Classe Controller.
@RequestMapping("salvar")
public String inserir(@Valid Caderno objeto, Integer id, BindingResult result, Model model, Long numeroCaderno) {
if (objeto.isStatus()) {
List<Caderno> cadernos = dao.listar();
for (Caderno m : cadernos) {
m.setStatus(false);
dao.inserir(objeto);
//dao.alterar(caderno);
if (result.hasErrors()) {
return "public/inicio";
}
}
model.addAttribute("mensagem", "");
}
dao.inserir(objeto);
System.out.println("cadastro chegou denovo no inserir");
return "public/sucesso";
}
Metodo buscarNumeroCaderno na Classe DAO, aqui ele busca o numero digitado que eu cadastrei, abre um novo formulario com estes dados preenchidos e desabilitados e logo em baixo e segundo formulario para inserir os novos dados no caso “alterar” que postei logo acima.
<a class="mention" href="/u/override">@Override</a>
public List buscarNumeroCaderno(String numeroCaderno){
TypedQuery query = entityManager.createQuery(“SELECT d FROM Caderno d WHERE d.numeroCaderno = :numeroCaderno order by dataRecebido desc”, Caderno.class);
query.setParameter(“numeroCaderno”, numeroCaderno);
return query.getResultList();
}
As paginas jsp.
Formulario = 1
<form accept-charset="utf-8" method="post" action='<c:url value="/busca/salvar"></c:url>'
class="form-horizontal" style="margin-top: 20px;">
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="id"><span class="required"></span>
</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="hidden" id="id" required class="form-control col-md-7 col-xs-12" placeholder="Id">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="numeroCaderno">TID/SEI/SIMPROC: <span class="required"></span>
</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" name="numeroCaderno" required class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="cras" >Unidade de Cadastro (CRAS/CREAS/CIC): </label>
<input type="hidden" required class="form-control col-md-7 col-xs-12">
<div class="col-md-6 col-sm-6 col-xs-12">
<select class="select2_group form-control" name="cras">
<optgroup label="Centro">
<option value="CGB">CGB</option>
<option value="Centro Pop Barra Funda">Centro Pop Barra Funda</option>
<option value="Centro Pop Bela Vista">Centro Pop Bela Vista</option>
<option value="Descomplica">Descomplica</option>
<option value="Saúde">Saúde</option>
<option value="Sé">Sé</option>
</optgroup>
</select>
</div>
</div>
<div class="form-group" lang="pt-br">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="dataRecebido">Recebido em: </label> <!--<span class="required"> <fmt:formatDate value="${aviso.data}" pattern="dd/MM/yyyy"/> </span> -->
<div class="col-md-6 col-sm-6 col-xs-12" lang="pt-br">
<input id="dataRecebido" class="date-picker form-control col-md-7 col-xs-12" type="text" name="dataRecebido" lang="pt-br">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="recebidoPor">Recebido por: </label> <span class="required"></span>
<input type="hidden">
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" name="recebidoPor" required class="form-control col-md-7 col-xs-12" placeholder="Insira o Nome">
</div>
</div>
</br>
<div class="form-group" align="center">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<input type="submit" value="Inserir" class="btn btn-primary">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="x_panel">
<div class="x_title">
<h2><small></small></h2>
<div class="filter">
</div>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="demo-container" style="height:260px">
<div id="placeholder33x" class="demo-placeholder"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /page content -->
<!-- bootstrap-daterangepicker -->
<script>
$(document).ready(function() {
$('#dataRecebido').daterangepicker({
singleDatePicker: true,
calender_style: "picker_4",
format: 'DD/MM/YYYY',
language: 'pt-BR'
}, function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
});
});
(function ($) {
$.daterangepicker.regional['pt-BR'] = {
closeText: 'Fechar',
prevText: '<Anterior',
nextText: 'Seguinte',
currentText: 'Hoje',
monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
weekHeader: 'Sem',
dateFormat: 'dd/mm/yyyy',
firstDay: 0,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.daterangepicker.setDefaults($.daterangepicker.regional['pt-BR']);
});
</script>
<!-- /bootstrap-daterangepicker -->
<!-- /Starrr -->
</div>
</div>
Formulario = 2
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12"><span class="required"></span>
</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="hidden" required class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group" style="visibility: hidden; ">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Numero Caderno </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input required="required" disabled="disabled" type="hidden" value="${caderno.id }" required class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">TID/SEI/SIMPROC: </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input name="numeroCaderno" required="required" disabled="disabled" type="text" value="${caderno.numeroCaderno }" required class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="cras">Unidade de Cadastro (CRAS/CREAS/CIC): </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input name="cras" required="required" type="text" disabled="disabled" value="${caderno.cras }" required class="form-control col-md-7 col-xs-12" >
</div>
</div>
<div class="form-group" lang="pt-br">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="dataRecebido">Recebido em *</label> <!--<span class="required"> <fmt:formatDate value="${aviso.data}" pattern="dd/MM/yyyy"/> </span> -->
<div class="col-md-6 col-sm-6 col-xs-12" lang="pt-br">
<input disabled="disabled" value="${caderno.dataRecebido }" class="date-picker form-control col-md-7 col-xs-12" type="text" name="dataRecebido" lang="pt-br">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="recebidoPor">Recebido por: </label> <span class="required"></span>
<input type="hidden">
<div class="col-md-6 col-sm-6 col-xs-12">
<input name="recebidoPor" required="required" type="text" disabled="disabled" value="${caderno.recebidoPor }" required class="form-control col-md-7 col-xs-12" >
</div>
</div>
</c:forEach>
</form>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Avaliar Caderno</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<br />
<form accept-charset="utf-8" action='<c:choose><c:when test="${not empty url }"><c:url value="/busca/alterar"></c:url></c:when> <c:otherwise>${url }</c:otherwise></c:choose>'
class="form-horizontal" style="margin-top: 20px;" method="get">
<c:forEach items="${cadernos}" var="caderno" begin="0" end="0">
<div class="form-group" style="visibility: hidden; ">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Numero Caderno </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input required="required" disabled="disabled" type="hidden" required class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="avaliadoPor">Avaliado por: </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input name="avaliadoPor" required="required" id="avaliadoPor" type="text" required class="form-control col-md-7 col-xs-12" >
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="codigoFamiliar">Código Familiar: </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input name="codigoFamiliar" id="codigoFamiliar" required="required" type="text" required class="form-control col-md-7 col-xs-12" >
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="nis">NIS: </label> <span class="required"></span>
<div class="col-md-6 col-sm-6 col-xs-12">
<input name="nis" required="required" type="text" id="nis" required class="form-control col-md-7 col-xs-12" >
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="data">Avaliado em *</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input id="data" class="date-picker form-control col-md-7 col-xs-12" required type="text" name="data">
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="pendenciaDocumentacao">Pendência na documentação: </label> <span class="required"></span>
<div class="checkbox">
<label>
<input type="checkbox" name="cpf">CPF /
</label>
<label>
<input type="checkbox" name="rg">RG /
</label>
<label>
<input type="checkbox" name="ctps">CTPS /
</label>
<label>
<input type="checkbox" name="certidaoNascimento">Certidão de Nascimento
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="pendenciaFormulario">Pendência no Formulário: </label> <span class="required"></span>
<input type="hidden">
<div class="checkbox">
<label>
<input type="checkbox" name="fichaExclusao">Ficha de Exclusão /
</label>
<label>
<input type="checkbox" name="fichaAveriguacao">Ficha de Averiguação /
</label>
<label>
<input type="checkbox" name="suplementar">Suplementar 1 /
</label>
<label>
<input type="checkbox" name="suplementarDois">Suplementar 2
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="pendenciaAssinatura">Pendência na Assinatura: </label> <span class="required"></span>
<div class="checkbox">
<label>
<input type="checkbox" name="entrevistador">Entrevistadora(or) Social /
</label>
<label>
<input type="checkbox" name="responsavelFamiliar">Responsável Familiar
</label>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="observacoes">Observações: </label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" required="required" id="observacoes" name="observacoes" required class="form-control col-md-7 col-xs-12">
</div>
</div>
<div class="form-radio">
<label class="control-label col-md-3 col-sm-3 col-xs-12" for="status">Status: <span class="required"></span>
</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<div class="radio">
<label>
<input type="radio" id="status1" required="required" name="status1"<c:if test="${caderno.status }">checked="checked"</c:if> /> Cadastro Finalizado
</label>
</div>
<div class="radio">
<label>
<input type="radio" id="status1" required="required" name="status1" <c:if test="${caderno.status }">checked="checked"</c:if> /> Cadastro Pendente
</label>
</div>
</div>
</div>
<div class="form-group" align="center">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<input type="submit" value="Salvar" class="btn btn-primary">
</div>
</div>
</c:forEach>
</form>
</div>
</div>
</div>
</div>
<!-- /page content -->
<!-- bootstrap-daterangepicker -->
<script>
$(document).ready(function() {
$('#data').daterangepicker({
singleDatePicker: true,
calender_style: "picker_4",
format: 'DD/MM/YYYY',
language: 'pt-BR'
}, function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
});
});
(function ($) {
$.daterangepicker.regional['pt-BR'] = {
closeText: 'Fechar',
prevText: '<Anterior',
nextText: 'Seguinte',
currentText: 'Hoje',
monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
weekHeader: 'Sem',
dateFormat: 'dd/mm/yyyy',
firstDay: 0,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.daterangepicker.setDefaults($.daterangepicker.regional['pt-BR']);
});
// jQuery('document').ready(function() {
// jQuery('#ajax_form').submit(function() {
// var dados = jQuery(this).serialize();
//aqui voce pega o conteudo do atributo action do form
// var url = $(this).attr('action');
// jQuery.ajax({
// type: "POST",
// url: “<a href="http://10.90.0.45/controledecadernos/busca/alterar">http://10.90.0.45/controledecadernos/busca/alterar</a>”,
// data: dados,
// success: function(response) {
//‘response’ é a resposta do servidor
// alert(response);
// }
// });
// return false;
// });
// });
</script>
<!-- /bootstrap-daterangepicker -->
<!-- /Starrr -->
</div>
</div>
Esta é a minha pagina como voce pode ver neste 2 formualario tem 2 forms que são 2 formulario que abre na mesma tela, e neste 2 formulario o problema de tudo, aonde apenas quero inserir os dados sem atualizar o ID?