Comment obtenir coché la case de la valeur à partir de la page html sur spring mvc contrôleur
im à l'aide de spring mvc framework avec thymeleaf moteur de template
le problème c'est que j'ai 1 page avec plusieurs case à cocher itéré chanter thymeleaf th:chaque itérateur.Quand j'ai cliqué sur plusieurs cases à cocher je veux passer case à cocher valeurs de la méthode de contrôleur..
contenu html
<table>
<tr th:each="q : ${questions}">
<h3 th:text="${q.questionPattern.questionPattern}"></h3>
<div>
<p >
<input type="checkbox" class="ads_Checkbox" th:text="${q.questionName}" th:value="${q.id}" name="id"/>
</p>
</div>
</tr>
</table>
*Contrôleur*
@RequestMapping(value = Array("/saveAssessment"), params = Array({ "save" }))
def save(@RequestParam set: String, id:Long): String = {
var userAccount: UserAccount = secService.getLoggedUserAccount
println(userAccount)
var questionSetQuestion:QuestionSetQuestion=new QuestionSetQuestion
var questionSet: QuestionSet = new QuestionSet
questionSet.setUser(userAccount)
questionSet.setSetName(set)
questionSet.setCreatedDate(new java.sql.Date(new java.util.Date().getTime))
questionSetService.addQuestionSet(questionSet)
var list2: List[Question] = questionService.findAllQuestion
var limit=list2.size
var qustn:Question=null
var a = 1;
for( a <- 1 to limit ){
println( a );
qustn= questionService.findQuestionById(a)
questionSetQuestion.setQuestion(qustn)
questionSetQuestion.setQuestionSet(questionSet)
questionSetQuestion.setCreatedDate(new java.sql.Date(new java.util.Date().getTime))
questionSetQuestionService.addQuestionSetQuestion(questionSetQuestion) } "redirect:/teacher/Assessment.html" }
- j'ai essayé de java script.
- <table> <tr th:chaque="q : ${questions}"> <h3 th:text="${q.questionPattern.questionPattern}"></h3> <div> <p > <input type="checkbox" class="ads_Checkbox" th:text="${q.questionName}" th:value="${q.id}" name="id"/> </p> </div> </tr> </table>
- Eh bien, c'est agréable. Mais si vous n'ajoutez pas de code qui montre comment vous avez essayé, nous ne pouvons pas vous aider. Vous devez poser une question spécifique pour obtenir un produit de réponse.
- je viens de mettre à jour ma question.est-ce correct???
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez assez bien l'avoir. Avec une case à cocher, vous ne pouvez envoyer qu'un morceau de l'information de retour avec la forme...qu'est la valeur. Donc, si vous essayez de déterminer ce qui les cases sont cochées lorsque l'utilisateur clique sur le bouton envoyer, puis j'aurais de toutes les cases à cocher utiliser un nom...comme des "id" (exactement comme vous en avez). La valeur est l'id de la question (encore une fois comme vous l'avez). Une fois soumis, "id" sera un tableau de chaînes qui inclut toutes les valeurs des cases qui ont été cochées.
Pour votre contrôleur méthode doit prendre param appelé "id" mapped paramètre "id" qui est une chaîne de caractères[]. Maintenant, pour chaque numéro, vous pouvez appeler questionService.findQuestionById.
(Je ne suis pas un Super gourou de sorte qu'aucun exemple de code sry 🙂
J'ai utilisé JSTL avec JSP et thymeleaf était quelque chose de nouveau. J'ai lu le THYMELEAF de la documentation.
Il y a une section qui explique multi apprécié des cases à cocher.
Dans le code ci-dessus nous ne sommes pas de liaison de la valeur dans le champ de l'objet de commande. Au lieu d'essayer de faire ce
ici la
selectedQuestions
est un tableau d'objets présents dans le printemps de l'objet de commande.