Pessoal boa tarde! Estou desenvolvendo um sistema web utilizando Thymeleaf com Spring Boot e estou com um big problema para resolver. Dado um Select Option escolhido, preciso chamar um método do meu controller do spring para atualizar um segundo Select Option da página que estou. Pensei em utilizar um java script para chamar este metodo, porém não encontrei nenhuma referencia. Vocês podem me ajudar?
Chamar um método do Controller do Spring via java script, é possivel?
R
1 Resposta
T
1 like
//no controller
@PostMapping("/finalizar")
@ResponseStatus(value = HttpStatus.OK)
public @ResponseBody ResponseEntity<?> finalizar(@RequestBody List<ProdutoPrecoPendente> produtos,BindingResult result, @AuthenticationPrincipal User user) {
validacaoPrecoService.finalizar(produtos, user);
return ResponseEntity.ok().build();
}
//no javascript
function finalizarValidacaoPreco(produtos) {
$.ajax({
url : '/validacaoPreco/finalizar',
method : 'POST',
contentType : 'application/json',
data : JSON.stringify(produtos),
error : onErroFinalizaValidacao.bind(this),
success : onValidacaoFinalizada.bind(this)
});
}
um exemplo dentro do seu caso
var selectGrupo = $("#selectGrupo");
var secao = $("#selectSecao");
secao.on("change", listarPorSecao.bind(this));
function listarPorSecao(event) {
var idSecao = event.target.value;
if (idSecao != 0) {
$.ajax({
url : `/grupos/secao/${idSecao}`,
method : 'GET',
contentType : 'application/json',
success : montarSelectGrupo.bind(this),
error : onErroPesquisa.bind(this)
});
} else {
montarSelectGrupo([]);
}
}
function montarSelectGrupo(grupos) {
selectGrupo.empty();
selectGrupo.html('<option value="">Selecione um grupo</option>');
grupos.forEach(function(grupo) {
var optionGrupo = $('<option>').val(grupo.id).text(grupo.nome);
selectGrupo.append(optionGrupo);
});
}
@Controller
@RequestMapping("/grupos")
public class GrupoController {
@Autowired
private Grupos grupos;
@ResponseStatus(code = HttpStatus.OK)
@RequestMapping(value = "/secao/{idSecao}")
@CrossOrigin
public ResponseEntity<List<Categoria>> listarPorSecao(@PathVariable("idSecao") Long idSecao) {
return ResponseEntity.ok().body(grupos.findBySecaoId(idSecao));
}
}
<div class="form-group col-sm-2">
<label for="selectSecao" class="control-label">Seção</label>
<select id="selectSecao" class="form-control">
<option value="">Selecione uma seção</option>
<option th:each="secao : ${secoes}" th:value="${secao.id}" th:text="${secao.nome}"></option>
</select>
</div>
<div class="form-group col-sm-2">
<label for="selectGrupo" class="control-label">Grupo</label>
<select id="selectGrupo" class="form-control">
<option value="">Selecione um grupo</option>
<option th:each="grupo : ${grupos}" th:value="${grupo.id}" th:text="${grupo.nome}"></option>
</select>
</div>
<div class="form-group col-sm-2">
<label for="selectSubgrupo" class="control-label">Subgrupo</label>
<select id="selectSubgrupo" class="form-control">
<option value="">Selecione um subgrupo</option>
<option th:each="subgrupo : ${subgrupos}" th:value="${subgrupo.id}" th:text="${subgrupo.nome}"></option>
</select>
</div>
Criado 9 de maio de 2020
Ultima resposta 15 de mai. de 2020
Respostas 1
Participantes 2
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Back-end Java: Microsservicos, Spring Boot e Kubernetes Por Eduardo Felipe Zambom Santana — Casa do Codigo