Кирилл Балашов :
I have a table with data. I want to add a new record.
But at some point it is impossible to consider what I introduced Console shows null. Reading the data yields null
post.jsp
<h3 align="left">
<label id="name_form_genre">Добавить должность</label>
</h3>
id Должности:
<input type="text" id="post_id" style="width: 270px;" maxlength="15" value=""/>
Название:
<input type="text" id="post_name" style="width: 270px;" maxlength="15" value=""/>
<div align="left"> <button onclick="add_post()" id="button_form_post">Добавить</button></div>
sample.js:
function add_post() {
var post_id = document.getElementById("post_id");
var post_name = document.getElementById("post_name");
if(post_id.value.toString().trim()=="" || post_name.value.toString().trim()=="")
{
alert("Поля не должны быть пустые!")
}else {
var xhr = new XMLHttpRequest();
var body = 'action=add' + '&id=' + post_id.value + '&name=' + post_name.value;
xhr.open("POST", "post", false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
xhr.send(body);
if (xhr.status != 200)
alert(xhr.status);
window.location = "/post";
}}
PostServlet.java:
@WebServlet("/post")
public class PostServlet extends HttpServlet{
private PostService postService = new PostService();
public PostServlet() throws SQLException, ClassNotFoundException { }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("post.jsp").forward(request, response);
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response) {
try {
PostEntity postEntity = new PostEntity();
String operation = request.getParameter("action");
switch (operation) {
case "add":
System.out.println("=====================");
System.out.println("ADD");
System.out.println("post_id: " + request.getParameter("post_id"));
System.out.println("post_name: " + request.getParameter("post_name"));
postEntity.setPost_id(Integer.parseInt(request.getParameter("post_id")));
postEntity.setPost_name(request.getParameter("post_name"));
System.out.println("=====================");
postService.insert(postEntity);
break;
}
request.getRequestDispatcher("post.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}}
Can someone help identify the issue. Thanks in advance.
Shahzeb Khan :
You are setting your request parameters as id
and name
in the .js
file but getting request parameter post_id
and post_name
in java. Can you verify it in your request? The error message shows that post_id
and post_name
is null.
Use id
and name
instead.
postEntity.setPost_id(Integer.parseInt(request.getParameter("id")));
postEntity.setPost_name(request.getParameter("name"));