Javascript request.getParameter()在servlet中返回null

Javascript request.getParameter()在servlet中返回null,javascript,java,html,jsp,servlets,Javascript,Java,Html,Jsp,Servlets,我正在开发一个Java Web应用程序,其中有一个带有表单的JSP。表单中有一个表,显示信息,每行有一个“修改”按钮。按下时,我有一个Javascript脚本,用表单的输入替换表中的标签,用户可以通过单击“接受”按钮填写表单并发送请求 但是,当在servlet中使用request.getParameter()时,它返回None,就好像输入不存在一样。确实创建了输入,执行了post,并调用了servlet中的适当方法,但是当我尝试访问参数时,它们是空的 代码如下: listadoCatLibro.

我正在开发一个Java Web应用程序,其中有一个带有表单的JSP。表单中有一个表,显示信息,每行有一个“修改”按钮。按下时,我有一个Javascript脚本,用表单的输入替换表中的标签,用户可以通过单击“接受”按钮填写表单并发送请求

但是,当在servlet中使用request.getParameter()时,它返回None,就好像输入不存在一样。确实创建了输入,执行了post,并调用了servlet中的适当方法,但是当我尝试访问参数时,它们是空的

代码如下:

listadoCatLibro.jsp:

<form id="form-mod" action="/libreria-java/admin/listado-cat-libro/modificar" method="post" enctype="text/plain">
    <table class="table">
      <thead>
        <tr>
          <th scope="col">ID</th>
          <th scope="col">Descripcion</th>
          <th scope="col">Estado</th>
          <th scope="col"> </th>
          <th scope="col"> </th>
        </tr>
      </thead>
      
      <tbody>
        <c:if test="${requestScope.categorias != null }">
          <c:forEach var="cat" begin="0" items="${requestScope.categorias}">
              <tr id="row-cat-${cat.getId()}">
                  <th id="id-lbl-${cat.getId()}" scope="row">${cat.getId()}</th>
                  <td id="des-lbl-${cat.getId()}">${cat.getDesc()}</td>
                  <td id="est-lbl-${cat.getId()}">${cat.getEstado()}</td>
                  <td> <button id="mod-btn-${cat.getId()}" 
                               class="btn btn-secondary float-right"
                               type="button"
                               onClick="modificar(${cat.getId()})">Modificar</button></td>
                               
                  <td> <button id="del-btn-${cat.getId()}" 
                               class="btn btn-secondary float-right"
                               type="button"
                               onClick="eliminar(${cat.getId()})">Eliminar</button></td>
              </tr>
            </c:forEach>    
        </c:if> 
    
      </tbody>
    </table>
</form>
和ServletAdmin.java

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    try {
        
        if(isAdmin(request)) {
            switch (request.getPathInfo()) {        
            case "/alta-libro":
                this.altaLibro(request, response);
                response.sendRedirect("/libreria-java/admin/alta-libro");
                break;  
            case "/listado-cat-libro/alta":
                this.altaCatLibro(request, response);
                response.sendRedirect("/libreria-java/admin/listado-cat-libro");
                break;  
            case "/listado-cat-libro/modificar":
                this.modificarCatLibro(request,response);
                response.sendRedirect("/libreria-java/admin/listado-cat-libro");
                break;
            }
            
        } else {
            response.sendRedirect("/libreria-java/home");
        }   
        
        
    } catch (CustomException e) {
        request.getSession().setAttribute("errorMsg", e.getMessage());
        request.getRequestDispatcher( "/WEB-INF/pages/error.jsp" ).forward( request, response );
    } catch (Exception ex) {
        CustomException e = new CustomException("Error desconocido", "ServletAdmin", ex);
        request.getSession().setAttribute("errorMsg", e.getMessage());
        request.getRequestDispatcher( "/WEB-INF/pages/error.jsp" ).forward( request, response );
    }
}

    private void modificarCatLibro(HttpServletRequest req, HttpServletResponse res) {
    CtrlCategoria ctrl = new CtrlCategoria();
    Categoria c = new Categoria();
    System.out.println(req.getParameter("inputID"));
    System.out.println(req.getParameter("inputDesc"));
    System.out.println(req.getParameter("inputEstado"));
    c.setId(Integer.parseInt(req.getParameter("inputID")));
    c.setDesc(req.getParameter("inputDesc"));
    c.setEstado(req.getParameter("inputEstado"));
    ctrl.update(c);
    
}
}

感谢您提供的任何帮助,并为冗长而混乱的代码感到抱歉。我不想编辑太多内容,以防我不小心遗漏了导致问题的任何内容。

编辑-我发现了问题。问题在于JSP文件中表单的声明。这一行:

<form id="form-mod" action="/libreria-java/admin/listado-cat-libro/modificar" method="post" enctype="text/plain">

应该是:

<form id="form-mod" action="/libreria-java/admin/listado-cat-libro/modificar" method="post">

“enctype=“text/plain”是导致问题的原因

<form id="form-mod" action="/libreria-java/admin/listado-cat-libro/modificar" method="post">