jsp java.lang.NumberFormatException: null
При добавление данных в бд ловлю ошибку java.lang.NumberFormatException: null
Находится в этой строке кода
int price = Integer.parseInt(request.getParameter("price")); \\ссылается на эту ошибку
int number = Integer.parseInt(request.getParameter("number"));
int manufacturer_details = Integer.parseInt(request.getParameter("manufacturer_details"));
Watch newWatch = new Watch(brand, type, price, number, manufacturer_details); \\когда начинаю отлаживать вылетает на это месте.
Что может быть не правильным, помогите разобраться или привести пример правильного решения.
Полный код WatchServlet
@WebServlet("/")
public class WatchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private WatchDAO watchDAO;
@Override
public void init() {
watchDAO = new WatchDAO();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getServletPath();
try {
switch (action) {
case "/new":
showNewForm(request, response);
break;
case "/insert":
insertWatch(request, response);
break;
case "/delete":
deleteWatch(request, response);
break;
case "/edit":
showEditForm(request, response);
break;
case "/update":
updateWatch(request, response);
break;
default:
listWatch(request, response);
break;
}
} catch (SQLException ex) {
throw new ServletException(ex);
}
}
private void listWatch(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException, ServletException {
List < Watch > listWatch = watchDAO.selectAllWatchs();
request.setAttribute("listWatch", listWatch);
RequestDispatcher dispatcher = request.getRequestDispatcher("watch-list.jsp");
dispatcher.forward(request, response);
}
private void showNewForm(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("watch-form.jsp");
dispatcher.forward(request, response);
}
private void showEditForm(HttpServletRequest request, HttpServletResponse response)
throws SQLException, ServletException, IOException {
int id = Integer.parseInt(request.getParameter("Id"));
Watch existingWatch = watchDAO.selectWatch(id);
RequestDispatcher dispatcher = request.getRequestDispatcher("watch-form.jsp");
request.setAttribute("Watch", existingWatch);
dispatcher.forward(request, response);
}
private void insertWatch(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException {
String brand = request.getParameter("brand");
String type = request.getParameter("type");
int price = Integer.parseInt(request.getParameter("price"));
int number = Integer.parseInt(request.getParameter("number"));
int manufacturer_details = Integer.parseInt(request.getParameter("manufacturer_details"));
Watch newWatch = new Watch(brand, type, price, number, manufacturer_details);
watchDAO.insertWatch(newWatch);
response.sendRedirect("list");
}
private void updateWatch(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String brand = request.getParameter("brand");
String type = request.getParameter("Type");
int price = Integer.parseInt(request.getParameter("Price"));
int number = Integer.parseInt(request.getParameter("Number"));
int manufacturer_details = Integer.parseInt(request.getParameter("Manufacturer Details"));
Watch book = new Watch(id, brand, type, price, number, manufacturer_details);
watchDAO.updateWatch(book);
response.sendRedirect("list");
}
private void deleteWatch(HttpServletRequest request, HttpServletResponse response)
throws SQLException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
watchDAO.deleteWatch(id);
response.sendRedirect("list");
}
}
jsp
<html>
<head>
<title>Watch Management Application</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<header>
<nav class="navbar navbar-expand-md navbar-dark" style="background-color: tomato">
<ul class="navbar-nav">
<li><a href="<%=request.getContextPath()%>/list" class="nav-link">Watch</a></li>
</ul>
</nav>
</header>
<br>
<div class="container col-md-5">
<div class="card">
<div class="card-body">
<c:if test="${watch != null}">
<form action="update" method="post">
</c:if>
<c:if test="${watch == null}">
<form action="insert" method="post">
</c:if>
<caption>
<h2>
<c:if test="${watch != null}">
Edit Watch
</c:if>
<c:if test="${watch == null}">
Add New Watch
</c:if>
</h2>
</caption>
<c:if test="${watch != null}">
<input type="hidden" name="id" value="<c:out value='$' />" />
</c:if>
<fieldset class="form-group">
<label>Watch Brand</label> <input type="text" value="<c:out value='${watch.brand}' />" class="form-control" name="brand" required="required">
</fieldset>
<fieldset class="form-group">
<label>Type Mechanic\Quartz</label><input type="text" value="<c:out value='${watch.type}' />" class="form-control" name="type">
</fieldset>
<fieldset class="form-group">
<label>Price</label> <input type="number" value="<c:out value='${watch.price}' />" class="form-control" name="price">
</fieldset>
<fieldset class="form-group">
<label>Number</label> <input type="number" value="<c:out value='${watch.number}' />" class="form-control" name="number">
</fieldset>
<fieldset class="form-group">
<label>Manufacturer details</label> <input type="number" value="<c:out value='${watch.manufacturer_details}' />" class="form-control" name="Manufacturer_details">
</fieldset>
<button type="submit" class="btn btn-success">Save</button>
</form>
</div>
</div>
</div>
</body>
</html>