2014-07-06 3 views
0

Peut-être que cette question a été posée beaucoup mais pas de la même manière alors voici mon problème et j'espère que quelqu'un peut vous aider.Envoyer les valeurs de la case à cocher Printemps MVC

Après avoir récupéré quelques lignes de recherche de base de données et a donné les résultats dans un List que je lié au mon Spring MVC ControllerModel:

if(!result.hasErrors()) 
{ 
    try{ 
    List<Question> questionlist = questionservice.findByCategoryAndLevel(questionform.getCategory(),questionform.getLevel()); 
    model.addAttribute("questionlist",questionlist); 
    return "addExam"; 
    }catch(NullPointerException e) 
    { 
    return "redirect:/admin/addexam"; 
    } 
} 

Voici mon avis:

<form:form action="addexam" method="POST" modelAttribute="questionlist"> 
    <table class="table table-striped table-bordered table-hover" id="sample_1"> 
    <thead> 
     <tr> 
     <th class="table-checkbox"> 
      <input type="checkbox" class="group-checkable" data-set="#sample_1 .checkboxes"/> 
     </th> 
     <th> 
      Category 
     </th> 
     <th> 
      level 
     </th> 
     <th> 
      Type of question 
     </th> 
     <th> 
      Status 
     </th> 
     <th> 
      &nbsp; 
     </th> 
     </tr> 
    </thead> 
    <tbody> 
     <c:forEach items="${questionlist}" var="question"> 
     <c:choose> 
      <c:when test="${question.isVisible()}"> 
      <tr class="odd gradeX"> 
       <td> 
       <input type="checkbox" class="checkboxes" /> 
       </td> 
       <td> 
       ${question.category.getCategoryName() } 
       </td> 
       <td> 
       ${question.level } 
       </td> 
       <c:choose> 
       <c:when test="${question.isSingleChoiceQuestion() }"> 
        <td>Question à choix unique</td> 
       </c:when> 
       <c:otherwise> 
        <td>Question à choix mutiple</td> 
       </c:otherwise> 
       </c:choose> 
       <td class="center"> 
       <c:choose> 
        <c:when test="${question.getState() == 'Desactivated'}"> 
        <span class="label label-sm label-default"> Desactivated </span> 
        </c:when> 
        <c:when test="${question.getState() == 'Activated'}"> 
        <span class="label label-sm label-success"> Activated </span> 
        </c:when> 
        <c:when test="${question.getState() == 'Pending'}"> 
        <span class="label label-sm label-warning"> Pending </span> 
        </c:when> 
       </c:choose> 
       </td> 
       <td> 
       <a href="${pageContext.request.contextPath }/admin/question?view=${question.idQuestion}" class="btn btn-xs btn-default" target="_blank">View</a> 
       </td> 
      </tr> 
      </c:when> 
     </c:choose> 
     </c:forEach> 
    </tbody> 
    </table> 
</form:form> 

Maintenant, comment soumettre les éléments sélectionnés?

+0

Pouvez-vous donner des détails plus votre question, whay vous attendez? Qu'avez-vous fait jusqu'ici pour soumettre votre formulaire? Vous devez également fournir vos signatures de méthode de contrôleur pour vérifier les liaisons. – tmarwen

Répondre

0

Donnez un identifiant/nom au type de case d'entrée comme ci-dessous

<input type="checkbox" class="checkboxes" id="someId" name="someId" value="uniqueValueToEachCheckBox"/> 

Puis, après la soumission de votre formulaire, vous pouvez accéder à vos valeurs de cases à cocher sélectionnées dans votre contrôleur comme ci-dessous.

request.getParameterValues("someId"); 
1

oui je voulais afficher la liste des questions et ensuite choisir ceux que je avais besoin via une case à cocher

i créé un formulaire, il contient la liste des Idquestions

public class checkedquestion { 

    private List<Long> listIdQuestion ; 

    //getter & setter 
    } 

a ensuite ajouté un attribut de chemin à la case à cocher comme ci-dessous:

<form:form action="submit" method="POST" modelAttribute="checkedquestion"> 

// ....... 

    <td> 
     <form:checkbox value="${question.idQuestion}" path="listIdQuestion"/> 
    </td> 

En soumettant la liste d'id j'ai l'un s i besoin:

public String add(@ModelAttribute ("checkedquestion") @Valid CheckedQuestion checkedquestion , BindingResult result) 
    { 
     if(!result.hasErrors()) 
     { 
       List<Long> list = checkedquestion.getListIdQuestion(); 
       List<Question> questionlist = questionservice.getQuestion(list); 
     } 
    } 

il semble fonctionner très bien

Questions connexes