После вставки значения в форму, используя jsp, верните сообщение со значениями, вставленными в верхней части страницы формы. - PullRequest
1 голос
/ 02 мая 2020

У меня есть форма, которая после нажатия кнопки «Добавить» переходит в DataInsert. jsp После запуска вставки просто перед концом () я хочу поставить сообщение «Вставлено» и перенаправить на домашнюю страницу.

У меня есть что-то вроде этого (форма в индексе. jsp):

<form onsubmit="return checkempty(form1)" action="Data_insert.jsp" method="post" name="form1">

  <table class="table" width="25%">
    <tr>
      <td><label for="name">Name:  </label></td>
      <td><input type="text" name="name" id="name"></td>
    </tr>
    <tr>
      <td><label for="city">City: </label></td>
      <td><input type="text" name="city" id="city"></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" name="button" id="button" value="Add"></td>
    </tr>
  </table>
  <p><br>
  </p>
</form>

Вставка выполняется в: Data_insert. jsp

<body>
<%
    String name=request.getParameter("name");
    String city=request.getParameter("city");

    // Connect to the database using Tomcat Resources
    Context ctx = null;
    Context initCtx = null;
    Connection con = null;
    DataSource ds = null;

    ctx = new InitialContext();
    initCtx = (Context) ctx.lookup("java:comp/env");
    ds = (DataSource) initCtx.lookup("jdbc/table_pool");
    con = ds.getConnection();

    PreparedStatement stmt;
    String instruccionSql="INSERT INTO table (name,city) VALUES ('" + name + "','" + city + "')";
    stmt = con.prepareStatement(instruccionSql);
    stmt.executeUpdate();
    stmt.close();
    con.close();

    out.println("Insertado"+"<br>");
%>
</body>

Проблема в том, что сообщения «Вставлено» очищает экран. Если мы добавим Javascript предупреждение, window.alert («Вставлено!»); Он не отображается как окно предупреждения,

Мы также попробовали:

<script>
    window.location.href = '/index.jsp';
</script>

Он перенаправляет на страницу, но мы не видим вставленное сообщение как всплывающее окно.

Как сделать так, чтобы сообщение "Вставлено" отображалось во всплывающем окне в верхней части главной страницы. Спасибо

1 Ответ

1 голос
/ 03 мая 2020

Вы можете использовать setAttribute, чтобы установить какое-либо сообщение в нем, и в зависимости от того, что оповещение будет отображаться на вашей странице index.jsp. Как ниже:

<%
String name=request.getParameter("name"); 
String city=request.getParameter("city");
int row=0; 
  // Connect to the database using Tomcat Resources
    Context ctx = null;
    Context initCtx = null;
    Connection con = null;
    DataSource ds = null;

    ctx = new InitialContext();
    initCtx = (Context) ctx.lookup("java:comp/env");
    ds = (DataSource) initCtx.lookup("jdbc/table_pool");
    con = ds.getConnection();

    PreparedStatement stmt;
     String instruccionSql="INSERT INTO table (name,city) VALUES (?,?)";
    stmt = con.prepareStatement(instruccionSql);
    stmt.setString(1,name); 
    stmt.setString(2,city); 

    row=stmt.executeUpdate();
    stmt.close();
    con.close();
  //if inserted
    if (row > 0) { 
  //setting message
      session.setAttribute("add", "Added Succesfully"); 
  //redirecting
      request.getRequestDispatcher("index.jsp").forward(request,response);
    } 

%>

Затем в index.jsp сделайте, как показано ниже :

  <% if(session.getAttribute("add") != null){ %>
    <script>
   alert("${add}");
   </script>
  <% } %>

Или используйте EL и добавьте строку ниже над тегом <form>:

 <p style="color: red;text-align:center">${add}</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...