Problemas para convertir datos con Integer.parseInt
Publicado por Chris (1 intervención) el 11/12/2019 18:13:44
Un saludo para todos, requiero ayuda con el error mostrado en la imagen, al parecer es un error con el Parseint segun es null pero cuando inspecciono la pagina aparece el siguiente dato:
<input type="hidden" value="6" name="IdVacante">
el "value" indica que si esta halando el valor: el controlador es el siguiente:
este es la conexion a la base de datos:
este es el bean:
y aca el JSP:
les agradezco de antemano.

<input type="hidden" value="6" name="IdVacante">
el "value" indica que si esta halando el valor: el controlador es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package rfp.modelos.controladorA;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
import rfp.modelos.dao.DbConnection;
import rfp.modelos.dao.SolicitudDao;
import rfp.modelos.dao.VacanteDao;
import rfp.modelos.paquetes.Solicitud;
import rfp.modelos.paquetes.Vacante;
import util.Utility;
public class SolicitudController extends HttpServlet {
private static final String UPLOAD_DIR="uploads";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nombreParam=request.getParameter("nombre");
String emailParam=request.getParameter("email");
String telefonoParam=request.getParameter("telefono");
String direccionParam=request.getParameter("direccion");
String rentaParam=request.getParameter("renta");
String ciudadParam=request.getParameter("ciudad");
String experienciaParam=request.getParameter("experiencia");
int idVacanteParam = Integer.parseInt(request.getParameter("IdVacante"));
Solicitud solicitud=new Solicitud(0);
solicitud.setFecha(new Date());
solicitud.setNombre(nombreParam);
solicitud.setEmail(emailParam);
solicitud.setTelefono(telefonoParam);
solicitud.setDireccion(direccionParam);
solicitud.setRenta(rentaParam);
solicitud.setCiudad(ciudadParam);
solicitud.setExperiencia(experienciaParam);
DbConnection conn=new DbConnection();
VacanteDao vacanteDao=new VacanteDao(conn);
Vacante vacante = vacanteDao.getById(idVacanteParam);
solicitud.setVacante(vacante);
String applicationPath = request.getServletContext().getRealPath("");
String uploadFilePath=applicationPath+File.separator+UPLOAD_DIR;
Part archivo=request.getPart("archivo");
String archivoParam=archivo.getSubmittedFileName();
RequestDispatcher rd;
String msg="";
if(archivoParam.endsWith("pdf")||archivoParam.endsWith("doc")||archivoParam.endsWith("docx")){
String archivoFisico=Utility.randomAlphaNumeric(10)+archivoParam.replace("","_");
solicitud.setArchivo(archivoFisico);
SolicitudDao solicitudDao=new SolicitudDao(conn);
solicitudDao.insert(solicitud);
conn.disconnect();
msg="<b>"+solicitud.getNombre()+"</b> hemos recibido tus datos." +"<b>Revisaremos tu CV y nos comunicaremos contigo.</b>Gracias.";
request.setAttribute("message", msg);
archivo.write(uploadFilePath+File.separator+archivoFisico);
rd=request.getRequestDispatcher("/mensaje_guest.jsp");
rd.forward(request, response);
}
else{
msg="Solo se permiten archivos de tipo PDF,DOC y DOCX";
request.setAttribute("message", msg);
request.setAttribute("solicitud", solicitud);
request.setAttribute("vacante", solicitud.getVacante());
rd=request.getRequestDispatcher("/frm_cv.jsp");
rd.forward(request, response);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action=request.getParameter("action");
HttpSession session=request.getSession();
RequestDispatcher rd;
switch(action){
case "solicitudes":
if(session.getAttribute("usuario")== null){
rd=request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
else{
this.verSolicitudes(request, response);
}
break;
case "responder":
if(session.getAttribute("usuario")== null){
rd=request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
else{
this.responder(request,response);
}
break;
}
}
protected void verSolicitudes(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
RequestDispatcher rd;
String msg=null;
List<Solicitud> lista=null;
DbConnection conn=new DbConnection();
SolicitudDao solicitudDao=new SolicitudDao(conn);
lista=solicitudDao.getAll();
conn.disconnect();
request.setAttribute("message", msg);
request.setAttribute("solicitudes", lista);
rd=request.getRequestDispatcher("/solicitudes.jsp");
rd.forward(request, response);
}
protected void responder(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
String email=request.getParameter("email");
RequestDispatcher rd;
request.setAttribute("email", email);
rd=request.getRequestDispatcher("/email.jsp");
rd.forward(request, response);
}
}
este es la conexion a la base de datos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package rfp.modelos.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.LinkedList;
import java.util.List;
import rfp.modelos.paquetes.Solicitud;
public class SolicitudDao {
private DbConnection conn;
public SolicitudDao(DbConnection conn){
this.conn=conn;
}
public int insert(Solicitud solicitud){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
try{
String sql="insert into Solicitud values(?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement preparedStatement=conn.getConnection().prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
preparedStatement.setInt(1,solicitud.getIdSolicitud());
preparedStatement.setString(4,format.format(solicitud.getFecha()));
preparedStatement.setString(2,solicitud.getNombre());
preparedStatement.setString(6,solicitud.getEmail());
preparedStatement.setString(5,solicitud.getTelefono());
preparedStatement.setString(3,solicitud.getDireccion());
preparedStatement.setString(7,solicitud.getArchivo());
preparedStatement.setString(8, solicitud.getRenta());
preparedStatement.setString(9, solicitud.getCiudad());
preparedStatement.setString(10,solicitud.getExperiencia());
preparedStatement.setInt(11,solicitud.getVacante().getIdVacante());
preparedStatement.executeUpdate();
ResultSet rs=preparedStatement.getGeneratedKeys();
int idSolicitud=0;
if (rs.next()){
idSolicitud=rs.getInt(1);
}
return idSolicitud;
}
catch(SQLException e){
System.out.println("Error SolicitudDao.insert: "+e.getMessage());
return 0;
}
}
public List<Solicitud> getAll(){
try{
String sql="select * from Solicitud order by idSolicitud desc";
PreparedStatement preparedStatement =conn.getConnection().prepareStatement(sql);
ResultSet rs=preparedStatement.executeQuery();
List<Solicitud> list=new LinkedList<>();
Solicitud solicitud;
VacanteDao vacanteDao=new VacanteDao(conn);
while(rs.next()){
solicitud=new Solicitud(rs.getInt("idSolicitud"));
solicitud.setFecha(rs.getDate("fecha"));
solicitud.setNombre(rs.getString("nombre"));
solicitud.setEmail(rs.getString("email"));
solicitud.setTelefono(rs.getString("telefono"));
solicitud.setDireccion(rs.getString("direccion"));
solicitud.setArchivo(rs.getString("archivo"));
solicitud.setRenta(rs.getString("renta"));
solicitud.setCiudad(rs.getString("ciudad"));
solicitud.setExperiencia(rs.getString("experiencia"));
solicitud.setVacante(vacanteDao.getById(rs.getInt("idVacante")));
list.add(solicitud);
}
return list;
}
catch(SQLException e){
System.out.println("Error SolicitudDao.getAll: "+e.getMessage());
return null;
}
}
}
este es el bean:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package rfp.modelos.paquetes;
import java.util.Date;
public class Solicitud {
private int idSolicitud;
private Date fecha;
private String nombre;
private String email;
private String telefono;
private String direccion;
private String archivo;
private String experiencia;
private String renta;
private String ciudad;
private Vacante vacante;
public Vacante getVacante() {
return vacante;
}
public void setVacante(Vacante vacante) {
this.vacante = vacante;
}
public String getRenta() {
return renta;
}
public void setRenta(String renta) {
this.renta = renta;
}
public String getCiudad() {
return ciudad;
}
public void setCiudad(String ciudad) {
this.ciudad = ciudad;
}
public Solicitud(int idSolicitud){
this.idSolicitud=idSolicitud;
}
public int getIdSolicitud() {
return idSolicitud;
}
public void setIdSolicitud(int idSolicitud) {
this.idSolicitud = idSolicitud;
}
public Date getFecha() {
return fecha;
}
public void setFecha(Date fecha) {
this.fecha = fecha;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getArchivo() {
return archivo;
}
public void setArchivo(String archivo) {
this.archivo = archivo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getExperiencia(){
return experiencia;
}
public void setExperiencia(String experiencia){
this.experiencia=experiencia;
}
@Override
public String toString() {
return "Solicitiud("+"id="+idSolicitud+", fecha="+fecha+", nombre="+nombre+", email="+email+", telefono="+telefono+", direccion="+direccion+", archivo="+archivo+", vacante="+vacante+ ", renta="+renta+", ciudad="+ciudad+", experiencia="+experiencia+")";
}
}
y aca el JSP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<title>Envio de CV</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/justified-nav.css" rel="stylesheet">
</head>
<body>
<div class="container">
<!-- The justified navigation menu is meant for single line per list item.
Multiple lines will require custom code not provided by Bootstrap. -->
<div class="masthead">
<h3 class="text-muted">RFP Logistica</h3>
<nav>
<ul class="nav nav-justified">
<li><a href="homepage">Inicio</a></li>
<li><a href="admin?action=login">Administración</a></li>
<li><a href="acerca.jsp">Acerca</a></li>
</ul>
</nav>
</div>
<br>
<h4><font color="red">${message}</font></h4>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><b>Enviar CV para vacante: ${vacante.nombre}</b></h3>
</div>
<div class="panel-body">
<form action="solicitud" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="nombre">Nombre</label>
<input type="text" class="form-control" name="nombre" value="${solicitud.nombre}" required id="nombre">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" name="email" value="${solicitud.email}" required id="email">
</div>
<div class="form-group">
<label for="telefono">Teléfono</label>
<input type="text" class="form-control" name="telefono" value="${solicitud.telefono}" required id="telefono">
</div>
<div class="form-group">
<label for="direccio n">Dirección</label>
<input type="text" class="form-control" name="direccion" value="${solicitud.direccion}" required id="direccion">
</div>
<div class="form-group">
<label for="direccio n">Pretenciones de Renta</label>
<input type="text" class="form-control" name="renta" value="${solicitud.renta}" required id="renta">
</div>
<div class="form-group">
<label for="direccio n">Ciudad de Domicilio</label>
<input type="text" class="form-control" name="ciudad" value="${solicitud.ciudad}" required id="ciudad">
</div>
<div class="form-group">
<label for="direccio n">Años de Experiencia en el Cargo</label>
<input type="text" class="form-control" name="experiencia" value="${solicitud.experiencia}" required id="experiencia">
</div>
<div class="form-group">
<label for="archivo">Subir CV</label>
<input type="file" required id="archivo" name="archivo">
<p class="help-block">Solo se permite archivos [ pdf,doc,docx ]</p>
</div>
<input type="hidden" value="${vacante.idVacante}" name="IdVacante">
<button type="submit" class="btn btn-success" >Enviar</button>
</form>
</div>
</div>
<!-- Site footer -->
<footer class="footer">
<p>© RFP Logistica</p>
</footer>
</div> <!-- /container -->
</body>
</html>
les agradezco de antemano.
Valora esta pregunta


0