2017-10-11 1 views
0

donc en gros à mettre ceci jeComment attraper une table POST et l'utiliser comme un tableau

  • AffidavitController - Contrôleur
  • Affidavit.jsp - Voir la page GET
  • summary.jsp - POST voir page

donc fondamentalement j'ai une forme qu'un utilisateur remplit et puis ils frappent le bouton soumettre et il le poste.

Cette méthode est alors appelée dans le contrôleur

@RequestMapping(value = "/affidavit", method = RequestMethod.POST) 
public String post(AffidavitDetailDto affidavitDetail, HttpServletRequest request, HttpServletResponse response, Model model) { 

maintenant à cette méthode, j'Attrapez les informations qui ont été passé au-dessus de l'objet de réponse.

un exemple est que j'ai un champ de nom sur la page d'affichage GET et le nom de ce champ est « custname »

donc je l'attraper comme si

String contactName = request.getParameter("custName"); 
    model.addAttribute("contactName", contactName); 

et je peux afficher sur moi le POST

    <p>Name: ${contactName}</p> 

mais maintenant je suis en train de comprendre comment je peux faire la même chose avec une table et le traiter comme un tableau

ce qui suit est la façon dont il est ajouté à la vue GET Page

<table id="certEmail" name="certEmail"> 
        <tr> 
         <td>${user.email}</td> 
        </tr> 
       </table> 

ce qui suit est ce que j'ai essayé

String[] certEmail = request.getParameterValues("certEmail"); 

    model.addAttribute("certEmail", certEmail); 

et c'est ce que j'ai sur la page de vue pour l'afficher

  <div id="Emails"> 

       <c:forEach items="${certEmail}" var="email"> 

        <p>${email}</p> 

       </c:forEach> 

      </div> 

cela ne fonctionne pas actuellement. Je sais que je suis probablement juste en train de faire le mal, donc quelqu'un peut s'il vous plaît au moins me diriger dans la bonne direction. Je n'ai pas encore trouvé une bonne requête google pour obtenir une réponse.

Répondre

0

La table n'est pas un élément de formulaire (https://www.w3schools.com/html/html_form_elements.asp). Seules les valeurs des éléments de formulaire sur formulaire sont soumises au serveur. Ainsi, au lieu de

<table id="certEmail" name="certEmail"> 
    <tr> 
     <td>${user.email}</td> 
    </tr> 
</table> 

Vous devriez avoir quelque chose comme

<table id="certEmail"> 
    <tr> 
     <td> 
      <input type="text" name="certEmail" value="${user.email}" /> 
     </td> 
    </tr> 
</table> 

si vous voulez que vos données soient modifiables ou

<table id="certEmail"> 
    <tr> 
     <td> 
      ${user.email} 
      <input type="hidden" name="certEmail" value="${user.email}" /> 
     </td> 
    </tr> 
</table> 

si vous voulez qu'il soit caché et juste en vouloir à le serveur.

Bien que je devrais indiquer que la deuxième variante devrait généralement être évitée. Je vous recommande de passer le id utilisateur et de l'utiliser dans le back-end pour charger l'utilisateur et lire son email.

S'il vous plaît apprendre à utiliser les formulaires HTML: https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Your_first_HTML_form

+0

Merci pour l'aide. Je me sens assez bête, j'ai raté ça. – TonyO