JSP включает в себя и шаблон MVC - PullRequest
0 голосов
/ 25 марта 2012

Я новичок в JSP / Servlets / MVC и пишу страницу JSP (с использованием шаблонов Servlets и MVC), которая отображает информацию о получателях, и хочу, чтобы пользователи также могли "комментировать" ее.

Таким образом, для сервлета в doGet () он собирает всю необходимую информацию в модель POJO и перенаправляет запрос в представление JSP для рендеринга.Это работает просто отлично.

Я бы хотел, чтобы часть "comment" была отдельной JSP, поэтому в RecipeView.jsp я могу использовать для разделения этих представлений.Так что я сделал это, но теперь немного застрял.Форма в CommentOnRecipe.jsp отправляет сервлет CommentAction, который прекрасно обрабатывает запись комментария.Поэтому, когда я перезагружаю страницу рецепта, я вижу только что сделанный комментарий.

Я бы хотел:

  • Перезагрузить страницу автоматически после комментирования (пока нет AJAX)
  • Запретить пользователю делать более одного комментария к каждомуРецепт в течение 1 дня (через Cookie).Поэтому я сохраняю файл cookie с указанием идентификатора продукта всякий раз, когда пользователь делает комментарий, чтобы мы могли проверить это позже?Как это будет работать в контексте MVC?
  • Показывать пользователю сообщение о том, что он уже прокомментировал Рецепт при посещении того, что прокомментировал

I'mзапутался в использовании бинов / включая JSP и т. д. о том, как этого добиться.

Я знаю, что в ASP.NET это был бы UseControl, который я бы поместил на страницу, или в ASP.NET MVC это был бы PartialView некоторого вида.Я просто запутался в том, как это работает в контексте JSP / Servlets / MVC.

1 Ответ

1 голос
/ 25 марта 2012

Вы можете использовать response.sendRedirect () или API перенаправления в javax.servlet, чтобы перенаправить на новую страницу или обновить ту же страницу (перенаправить на ту же страницу / путь, чтобы обновить бины / данные)

об ограничении одним комментарием в день - да, вы можете использовать cookie, но проблема в том, что пользователь может использовать другой тип браузера (chrome, FF, Safari) и сможет делать несколько комментариев.В идеале вам следует сохранить lastCommentTime в хранилище модели / постоянного хранилища и связать его с пользовательской информацией - таким образом ваш объект модели может предоставить API, который проверяет время последнего комментария и возвращает истину / ложь в зависимости от того, может ли пользователь комментировать или нет.Вы можете использовать этот API в вашем сервлете / JSP, например, чтобы показать / скрыть кнопку комментария, а также показать сообщение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...