Me gustaría pasar una lista de String de Spring Controller a Javascripts. El controlador :
@PostMapping("/level1") public String login (Model model){ List<Question> questions = frageRepository.findAllQuestions(); List<String> questionText = questions.stream().map(Frage::getText).toList(); model.addAttribute("questionText", questionText); log.info(spieler.toString()); return "level1"; }el cuerpo de level1.html
<body> <div class="container mx-auto"> <label class="text-center mt-4" id="thetext">Du liebst Abenteuer und möchte endlich reisen. <br> Du hast ein bisschen Geld und das reicht für ein Ticket zur nächsten Insel.<br> Unglücklicherweise ist dein Schiff in einem Sturm gesunken. <br> Du hat glück, an einen Strand zu landen. <br><br> Jetzt musst du die Herausforderungen mit deinen SQL-Kenntnissen meistern.<br> Je schneller du die Probleme löst, desto besser ist dein Ranking.<br><br> Viel Spaß !!!<br> </label> <div class="d-flex justify-content-center"> <input id="startButton" onclick="myFunction()" class="btn-secondary mt-4" type="button" value="next"> </div> </div> <script> var questionText = [[${questionText}]]; </script> <script th:src="@{/script/questions.js}"></script> </body>el archivo question.js
var i = 0; function myFunction() { document.getElementById("thetext").innerHTML = questionText[i]; i++; }¿Cómo puedo pasar el texto de la pregunta de la lista al código de Javascripts? Quiero que cuando el usuario haga clic en el siguiente botón, el navegador le muestre la siguiente pregunta en la etiqueta "el texto" de la lista. ¿O hay otra manera de hacer esto? Espero que puedas entenderme :(
Muchos gracias !
simplemente ingrese th:inline="javascript" en la etiqueta del script
<script input th:inline="javascript"> var questionText = [[${questionText}]]; </script>