JSP / Servlet中的隐藏表单

时间:2018-07-24 11:59:09

标签: java html jsp servlets java-ee

我想从我的jsp获取参数到我的servelet。 所以我使用输入形式,它可以用于名称和姓氏,但不能用于我的ID。 这是我的JSP的代码:

<tr>
                <td><form method="post" action="ServBddInsa">
                    <input type="hidden" name="id" id="id" value="testId"/>
                    <c:out value="${ utilisateur.id }" />
                    </form>
                </td>                                                           
                <td><c:out value="${ utilisateur.prenom }" /></td>
                <td><c:out value="${ utilisateur.nom }" /></td>
                <td><form method="post" action="ServBddInsa">                   
                        <p>                         
                            <label for="prenom"> Prenom :</label> <input type="text"
                                id="prenom" name="prenom" />                                                
                            <label for="nom"> Nom :</label> <input type="text" id="nom"
                                name="nom" />
                        </p>
                        <input type="submit" name="editer" value="editer" />

                    </form></td>
            </tr>
        </c:forEach>

这是我的servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        BddInsa listU = new BddInsa();
        request.setAttribute("utilisateur", listU.recupererList());
        this.getServletContext().getRequestDispatcher("/WEB-INF/bddinsa.jsp").forward(request, response);


    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {      
        Utilisateur utilisateurs = new Utilisateur();
        utilisateurs.setNom(request.getParameter("nom"));
        utilisateurs.setPrenom(request.getParameter("prenom"));     
        utilisateurs.setId(request.getParameter("id"));             
        System.out.println(utilisateurs.getPrenom());
        System.out.println(utilisateurs.getNom());
        System.out.println(utilisateurs.getId());
        BddInsa listU = new BddInsa();
        listU.Editer(utilisateurs);     
        request.setAttribute("utilisateurs", listU.recupererList());
        this.getServletContext().getRequestDispatcher("/WEB-INF/bddinsa.jsp").forward(request, response);

    }


}

当我尝试查看id的值时得到NULL

谢谢您的帮助!

1 个答案:

答案 0 :(得分:2)

请您尝试仅使用一个打开和一个关闭表单标签吗?我认为您的问题是因为您有两个<form method="post" action="ServBddInsa">。因此,提交按钮位于第二个表单上。在这种情况下,将不考虑第一种形式的隐藏字段,并且不会发送该字段。