Bind a list of radio buttons with Spring and Thymeleaf
up vote
0
down vote
favorite
my problem is that I need to get the radio buttons that are selected in HTML file and use it in the PostMapping.
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Do Test Excercise</title>
<script language="javascript">
</script>
</head>
<body>
<h1>Do Test Exercise</h1>
<form method="POST">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$question.question_ID" th:text="$solution.text"
th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
</body>
</html>
However I don't know how to get that values for the radio buttons and save it in a array of String
@GetMapping("doTest/post/exercise")
public String doTest(Model model, @PathVariable String exercise)
model.addAttribute("exercise", exercisesDAO.getExerciseByType(exercise, "Test"));
return "exercise/doTestExercise";
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") String solution, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes)
exercisesDAO.solve(exercise, solution, "admin", "Test");
redirectAttributes.addAttribute("post", post);
redirectAttributes.addAttribute("exercise", exercise);
return "redirect:/showMark/post/exercise";
Thanks
java spring thymeleaf
add a comment |
up vote
0
down vote
favorite
my problem is that I need to get the radio buttons that are selected in HTML file and use it in the PostMapping.
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Do Test Excercise</title>
<script language="javascript">
</script>
</head>
<body>
<h1>Do Test Exercise</h1>
<form method="POST">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$question.question_ID" th:text="$solution.text"
th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
</body>
</html>
However I don't know how to get that values for the radio buttons and save it in a array of String
@GetMapping("doTest/post/exercise")
public String doTest(Model model, @PathVariable String exercise)
model.addAttribute("exercise", exercisesDAO.getExerciseByType(exercise, "Test"));
return "exercise/doTestExercise";
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") String solution, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes)
exercisesDAO.solve(exercise, solution, "admin", "Test");
redirectAttributes.addAttribute("post", post);
redirectAttributes.addAttribute("exercise", exercise);
return "redirect:/showMark/post/exercise";
Thanks
java spring thymeleaf
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
my problem is that I need to get the radio buttons that are selected in HTML file and use it in the PostMapping.
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Do Test Excercise</title>
<script language="javascript">
</script>
</head>
<body>
<h1>Do Test Exercise</h1>
<form method="POST">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$question.question_ID" th:text="$solution.text"
th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
</body>
</html>
However I don't know how to get that values for the radio buttons and save it in a array of String
@GetMapping("doTest/post/exercise")
public String doTest(Model model, @PathVariable String exercise)
model.addAttribute("exercise", exercisesDAO.getExerciseByType(exercise, "Test"));
return "exercise/doTestExercise";
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") String solution, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes)
exercisesDAO.solve(exercise, solution, "admin", "Test");
redirectAttributes.addAttribute("post", post);
redirectAttributes.addAttribute("exercise", exercise);
return "redirect:/showMark/post/exercise";
Thanks
java spring thymeleaf
my problem is that I need to get the radio buttons that are selected in HTML file and use it in the PostMapping.
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Do Test Excercise</title>
<script language="javascript">
</script>
</head>
<body>
<h1>Do Test Exercise</h1>
<form method="POST">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$question.question_ID" th:text="$solution.text"
th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
</body>
</html>
However I don't know how to get that values for the radio buttons and save it in a array of String
@GetMapping("doTest/post/exercise")
public String doTest(Model model, @PathVariable String exercise)
model.addAttribute("exercise", exercisesDAO.getExerciseByType(exercise, "Test"));
return "exercise/doTestExercise";
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") String solution, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes)
exercisesDAO.solve(exercise, solution, "admin", "Test");
redirectAttributes.addAttribute("post", post);
redirectAttributes.addAttribute("exercise", exercise);
return "redirect:/showMark/post/exercise";
Thanks
java spring thymeleaf
java spring thymeleaf
asked Nov 11 at 1:04
Erik Espuñes Juberó
1
1
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
You need to change the name of your inputs from th:name="$question.question_ID"
, to th:name="$'solution['+ question.question_ID + ']'"
. After that, you need to change your controller, so that instead of an array of Strings, it will receive a HashMap, where you will get for each id, the chosen solution.
Form
<form method="POST" th:action="@doTest/$post.id/$exercise.id">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$'solution['+ question.question_ID + ']'" th:text="$solution.text" th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
Controller
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") HashMap<String, String> solutions, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes) ...
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
You need to change the name of your inputs from th:name="$question.question_ID"
, to th:name="$'solution['+ question.question_ID + ']'"
. After that, you need to change your controller, so that instead of an array of Strings, it will receive a HashMap, where you will get for each id, the chosen solution.
Form
<form method="POST" th:action="@doTest/$post.id/$exercise.id">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$'solution['+ question.question_ID + ']'" th:text="$solution.text" th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
Controller
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") HashMap<String, String> solutions, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes) ...
add a comment |
up vote
0
down vote
You need to change the name of your inputs from th:name="$question.question_ID"
, to th:name="$'solution['+ question.question_ID + ']'"
. After that, you need to change your controller, so that instead of an array of Strings, it will receive a HashMap, where you will get for each id, the chosen solution.
Form
<form method="POST" th:action="@doTest/$post.id/$exercise.id">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$'solution['+ question.question_ID + ']'" th:text="$solution.text" th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
Controller
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") HashMap<String, String> solutions, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes) ...
add a comment |
up vote
0
down vote
up vote
0
down vote
You need to change the name of your inputs from th:name="$question.question_ID"
, to th:name="$'solution['+ question.question_ID + ']'"
. After that, you need to change your controller, so that instead of an array of Strings, it will receive a HashMap, where you will get for each id, the chosen solution.
Form
<form method="POST" th:action="@doTest/$post.id/$exercise.id">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$'solution['+ question.question_ID + ']'" th:text="$solution.text" th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
Controller
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") HashMap<String, String> solutions, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes) ...
You need to change the name of your inputs from th:name="$question.question_ID"
, to th:name="$'solution['+ question.question_ID + ']'"
. After that, you need to change your controller, so that instead of an array of Strings, it will receive a HashMap, where you will get for each id, the chosen solution.
Form
<form method="POST" th:action="@doTest/$post.id/$exercise.id">
<span align="left" th:each="question : $exercise.getQuestions()">
<p valign="top" th:text="$question.text">Text</p>
<tr align="left" th:each="solution : $question.getSolutions()">
<input width="5%" type="radio" th:name="$'solution['+ question.question_ID + ']'" th:text="$solution.text" th:value="$solution.text"/><BR>
</tr>
</span>
<input type="submit" value="Submit">
</form>
Controller
@PostMapping("doTest/post/exercise")
public String doTest(@RequestParam(value = "solution") HashMap<String, String> solutions, @PathVariable String post, @PathVariable String exercise, RedirectAttributes redirectAttributes) ...
answered Nov 11 at 12:17
Alain Cruz
1,5211818
1,5211818
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244936%2fbind-a-list-of-radio-buttons-with-spring-and-thymeleaf%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown