Как получить значение поля радио th:field в серверной части (привязка Thymeleaf) ⇐ JAVA
Как получить значение поля радио th:field в серверной части (привязка Thymeleaf)
Я работаю над проектом, используя Thymeleaf и Spring Boot. В моей форме у меня есть набор переключателей, динамически создаваемых с помощью Thymeleaf. Каждый переключатель связан с полем ввода текста, и я использую атрибуты th:field и th:value для привязки входных значений. Однако, когда я отправляю форму, поле th: для переключателя (respostaCorreta) отправляет как старое значение, так и новое значение th:, в результате чего получается что-то вроде «OldResponse,NewResponse». Я хочу отправить только новое значение (th:value) и игнорировать старое. Как мне этого добиться?
System.out.println("\\n\\n\\n" + questaoDTO.getRespostaCorreta() + "\\n\\n\\n");
Результат: TH:FIELD,TH:VALUE, но мне нужно только TH:VALUE.
Я хочу отправить только новое значение (th:value) и игнорировать старый. Как этого добиться?
Внешний интерфейс:
Título
Pontuação
Selecione uma foto para este quiz
Categoria
Pergunta [[${questaoStat.index} + 1]]
Pergunta
Resposta Correta
Pontos
Selecione uma imagem para
ilustrar a pergunta
Alternativas
Adicionar Nova Pergunta
Salvar Quiz
Бэкенд:
@PostMapping("/quiz/{id}")
@Transactional
public String alterarQuiz(@ModelAttribute QuizDTO dto) {
Quiz existingQuiz = quizRepository.findById(dto.getId()).orElseThrow();
existingQuiz.setCategoria(dto.getCategoria());
existingQuiz.setTitulo(dto.getTitulo());
existingQuiz.setTotalPontos(dto.getTotalPontos());
ImagemQuiz imagemQuiz = existingQuiz.getImagem();
if (imagemQuiz == null) {
imagemQuiz = new ImagemQuiz();
imagemQuiz.setQuiz(existingQuiz);
}
imagemQuiz.setNomeArquivo(dto.getImagem().getArquivo().getOriginalFilename());
try {
imagemQuiz.setArquivo(dto.getImagem().getArquivo().getBytes());
} catch (IOException ex) {
// Tratar IOException aqui
}
existingQuiz.setImagem(imagemQuiz);
// Limpar e adicionar questões
existingQuiz.getQuestoes().clear();
for (QuestaoDTO questaoDTO : dto.getQuestoes()) {
Questao questaoEntity = new Questao();
questaoEntity.setTexto(questaoDTO.getTexto());
questaoEntity.setPontos(questaoDTO.getPontos());
System.out.println("\n\n\n" + questaoDTO.getRespostaCorreta() + "\n\n\n");
questaoEntity.setRespostaCorreta(questaoDTO.getRespostaCorreta());
// IMAGEM DA QUESTÃO BANCO DE DADOS
ImagemQuestao imagemEntity = new ImagemQuestao();
imagemEntity.setNomeArquivo(questaoDTO.getImagem().getArquivo().getOriginalFilename());
try {
imagemEntity.setArquivo(questaoDTO.getImagem().getArquivo().getBytes());
} catch (IOException ex) {
// Tratar IOException aqui
}
questaoEntity.setImagem(imagemEntity);
// ALTERNATIVAS DA QUESTÃO BANCO DE DADOS
List alternativasEntity = new ArrayList();
for (AlternativaDTO alternativaDTO : questaoDTO.getAlternativas()) {
Alternativa alternativaEntity = new Alternativa();
alternativaEntity.setTexto(alternativaDTO.getTexto());
alternativaEntity.setQuestao(questaoEntity);
alternativasEntity.add(alternativaEntity);
}
questaoEntity.setAlternativas(alternativasEntity);
questaoEntity.setQuiz(existingQuiz);
existingQuiz.getQuestoes().add(questaoEntity);
}
quizRepository.save(existingQuiz);
return "redirect:/backoffice/quiz";
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -thymeleaf
Я работаю над проектом, используя Thymeleaf и Spring Boot. В моей форме у меня есть набор переключателей, динамически создаваемых с помощью Thymeleaf. Каждый переключатель связан с полем ввода текста, и я использую атрибуты th:field и th:value для привязки входных значений. Однако, когда я отправляю форму, поле th: для переключателя (respostaCorreta) отправляет как старое значение, так и новое значение th:, в результате чего получается что-то вроде «OldResponse,NewResponse». Я хочу отправить только новое значение (th:value) и игнорировать старое. Как мне этого добиться?
System.out.println("\\n\\n\\n" + questaoDTO.getRespostaCorreta() + "\\n\\n\\n");
Результат: TH:FIELD,TH:VALUE, но мне нужно только TH:VALUE.
Я хочу отправить только новое значение (th:value) и игнорировать старый. Как этого добиться?
Внешний интерфейс:
Título
Pontuação
Selecione uma foto para este quiz
Categoria
Pergunta [[${questaoStat.index} + 1]]
Pergunta
Resposta Correta
Pontos
Selecione uma imagem para
ilustrar a pergunta
Alternativas
Adicionar Nova Pergunta
Salvar Quiz
Бэкенд:
@PostMapping("/quiz/{id}")
@Transactional
public String alterarQuiz(@ModelAttribute QuizDTO dto) {
Quiz existingQuiz = quizRepository.findById(dto.getId()).orElseThrow();
existingQuiz.setCategoria(dto.getCategoria());
existingQuiz.setTitulo(dto.getTitulo());
existingQuiz.setTotalPontos(dto.getTotalPontos());
ImagemQuiz imagemQuiz = existingQuiz.getImagem();
if (imagemQuiz == null) {
imagemQuiz = new ImagemQuiz();
imagemQuiz.setQuiz(existingQuiz);
}
imagemQuiz.setNomeArquivo(dto.getImagem().getArquivo().getOriginalFilename());
try {
imagemQuiz.setArquivo(dto.getImagem().getArquivo().getBytes());
} catch (IOException ex) {
// Tratar IOException aqui
}
existingQuiz.setImagem(imagemQuiz);
// Limpar e adicionar questões
existingQuiz.getQuestoes().clear();
for (QuestaoDTO questaoDTO : dto.getQuestoes()) {
Questao questaoEntity = new Questao();
questaoEntity.setTexto(questaoDTO.getTexto());
questaoEntity.setPontos(questaoDTO.getPontos());
System.out.println("\n\n\n" + questaoDTO.getRespostaCorreta() + "\n\n\n");
questaoEntity.setRespostaCorreta(questaoDTO.getRespostaCorreta());
// IMAGEM DA QUESTÃO BANCO DE DADOS
ImagemQuestao imagemEntity = new ImagemQuestao();
imagemEntity.setNomeArquivo(questaoDTO.getImagem().getArquivo().getOriginalFilename());
try {
imagemEntity.setArquivo(questaoDTO.getImagem().getArquivo().getBytes());
} catch (IOException ex) {
// Tratar IOException aqui
}
questaoEntity.setImagem(imagemEntity);
// ALTERNATIVAS DA QUESTÃO BANCO DE DADOS
List alternativasEntity = new ArrayList();
for (AlternativaDTO alternativaDTO : questaoDTO.getAlternativas()) {
Alternativa alternativaEntity = new Alternativa();
alternativaEntity.setTexto(alternativaDTO.getTexto());
alternativaEntity.setQuestao(questaoEntity);
alternativasEntity.add(alternativaEntity);
}
questaoEntity.setAlternativas(alternativasEntity);
questaoEntity.setQuiz(existingQuiz);
existingQuiz.getQuestoes().add(questaoEntity);
}
quizRepository.save(existingQuiz);
return "redirect:/backoffice/quiz";
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -thymeleaf
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Селектор jQuery для радио входов, которые требуются, но одно радио проверяется
Anonymous » » в форуме Html - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Селектор jQuery для радио входов, которые требуются, но одно радио проверяется
Anonymous » » в форуме Jquery - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Наследует help_text из django.db.models.Field в rest_framework.serializer.Field
Anonymous » » в форуме Python - 0 Ответы
- 70 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Наследует help_text из django.db.models.Field в rest_framework.serializer.Field
Anonymous » » в форуме Python - 0 Ответы
- 75 Просмотры
-
Последнее сообщение Anonymous
-