【发布时间】: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 是一个列表,这就是问题所在。你是一台机器,非常感谢!