【问题标题】:What's wrong with this jsp and servlet? [duplicate]这个jsp和servlet有什么问题? [复制]
【发布时间】:2016-06-14 17:14:15
【问题描述】:

此代码向我发送以下错误,我不知道为什么,似乎错误是输入字符串,但我认为代码是正确的。也许我在编写jsp时犯了一个错误?我做错了什么?

117:                <div class="col-md-4">
118:                    <input id="textinput" name="nombreUsuario" type="text"
119:                        placeholder="inserta nombre" class="form-control input-md"
120:                        required="" value="${usuarios.nombreUsuario }" >
121: 
122:                </div>
123:            </div>


Stacktrace:] con causa raíz
java.lang.NumberFormatException: For input string: "nombreUsuario"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)

小服务程序

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");

        // GestionEventos gestionEventos = new GestionEventos();
        GestionUsuarios gestionUsuarios = new GestionUsuarios();

        if (request.getParameter("id") != null) {
            int id = Integer.parseInt(request.getParameter("id"));

            Usuario us = gestionUsuarios.getUsuarioPorId(id);

            Collection<Usuario> usuarios = gestionUsuarios.list();

            if (us != null) {

                request.setAttribute("usuarios", usuarios);

                /*
                 * Usamos un map para comprobar si un evento está marcado
                 */

                // Map<Integer, String> usuarioEvento = new HashMap<Integer,
                // String>();

                // Usuario u = new Usuario();

                // usuarioEvento.put(new Integer((int) u.getIdUsuario()),
                // u.getNombreUsuario());

                // request.setAttribute("usuarioEvento", usuarioEvento);

                request.getRequestDispatcher("formularioUsuario1.jsp").forward(request, response);
            } else {
                // id sin corresponder a ningun usuario
                response.sendRedirect("TablaUsuariosServlet");
            }

        } else {
            // no hay un id válido
            response.sendRedirect("TablaUsuariosServlet");
        }
    }

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");

        int id = Integer.parseInt(request.getParameter("id"));

        String nombreUsuario = request.getParameter("nombreUsuario");
        String apellidosUsuario = request.getParameter("apellidosUsuario");
        String contrasenia = request.getParameter("contrasenia");
        String email = request.getParameter("email");
        String preguntaSecreta = request.getParameter("preguntaSecreta");
        String respuestaSecreta = request.getParameter("respuestaSecreta");
        String sexo = request.getParameter("sexo");

        // Editando el usuario
        GestionUsuarios gestionUsuarios = new GestionUsuarios();

        Usuario us = gestionUsuarios.getUsuarioPorId(id);

        us.setNombreUsuario(nombreUsuario);
        us.setApellidosUsuario(apellidosUsuario);
        us.setContrasenia(contrasenia);
        us.setEmail(email);
        us.setPreguntaSecreta(preguntaSecreta);
        us.setRespuestaSecreta(respuestaSecreta);
        us.setSexo(sexo);

        gestionUsuarios.editarUsuario(us);

        response.sendRedirect("TablaUsuariosServlet");

    }

表单内的jsp代码

<!-- Text input-->
            <div class="form-group">
                <label class="col-md-4 control-label" for="textinput">Nombre</label>
                <div class="col-md-4">
                    <input id="textinput" name="nombreUsuario" type="text"
                        placeholder="inserta nombre" class="form-control input-md"
                        required="" value="${usuarios.nombreUsuario }" >

                </div>
            </div>

输入

<form class="form-horizontal" method="POST" action="EditarUsuario">
        <fieldset>



            <input id="textinput" name="id" type="hidden" value="${usuario.idUsuario }"/>

【问题讨论】:

  • request.getParameter("id") 的值是多少?你能用name="id"显示input的代码吗?
  • usuarios 是一个列表......它应该类似于 value="${usuarios[0].nombreUsuario}"
  • 我现在已经把上面的输入贴出来了
  • @olexity 但我从列表中调用 nombreUsuario,它在类似情况下工作正常
  • @olexity 对不起,你有理由,usuarios 是一个列表,这就是问题所在。你是一台机器,非常感谢!

标签: java jsp servlets


【解决方案1】:

request.getParameter("id") 的值为 null 你应该添加一个输入 以 name="id" 的形式

例子:

<input  name="id" type="text"/>

【讨论】:

  • 我已经发布了隐藏的输入
猜你喜欢
  • 2011-03-18
  • 1970-01-01
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 2013-06-15
  • 2018-04-06
相关资源
最近更新 更多