Проблема с отображением всплывающего окна (Java 1.4) - PullRequest
0 голосов
/ 29 июля 2010

У меня есть JSP с некоторыми полями.Когда я заполняю поля и нажимаю кнопку отправки, мне нужно проверить, существуют ли данные в базе данных;если это не так, я отображаю всплывающее окно, предупреждающее пользователя о том, что данные не существуют в базе данных.Если они все равно продолжат, он появится на экране;если нет, он возвращается к начальной точке.

Я застрял в том месте, где я отображаю всплывающее окно, поскольку сервер не может отобразить всплывающее окно на клиенте

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

Просто позвольте сервлету сохранить условие в области запроса и позвольте JSP напечатать код Javascript условно.

Servlet:

boolean exist = yourDAO.exist(parameters);
request.setAttribute("exist", exist);
request.getRequestDispatcher("page.jsp").forward(request, response);

JSP (с использованием JSTL):

<c:if test="${!exist}">
    <script>
        if (confirm('Data does not exist, do you want to continue?')) {
            // Do whatever you want when user want to continue ("goes on screen").
        } else {
            // Do whatever you want when user don't want to continue ("returns to starting point").
        }
    </script>
</c:if>
0 голосов
/ 29 июля 2010

Я бы сделал что-то вроде следующего:

Во-первых, установите логический флаг при проверке базы данных

<%
    boolean POPUP_FLAG = /*condition check*/
%>

Затем, если ваш код рендеринга, вы можете проверить флаг и включить window.open на странице соответствующим образом

<%
  if (POPUP_FLAG) {
%>
    <script>
    window.open("popup.jsp", "_blank");
    </script>
    /*
      Include here any special details to display on the main page in popup mode
    */
<%
  } else {
%>
    /*
      Include here the normal information you would want displayed when not in popup mode
    */
<%
  }
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...