JSP - множество кнопок отправки и множество операторов IF - PullRequest
0 голосов
/ 12 января 2011

На моей странице JSP есть много кнопок Отправить, например,

<input type="submit" name="RemoveCustomer" value="Submit"/>
<input type="submit" name="AddCustomer" value="Submit"/>

, и в моем теге скриптлета у меня есть что-то вроде этого

if(request.getParameter("addByName") != null && request.getParameter("addByName").length() > 0) {
  ...
} else {
  if(request.getParameter("removeByName") != null && request.getParameter("removeByName").length() > 0) {
    ...
  } else {
    ...
  }

}

Где addByName и removeByName являются HTML TextFields

Очевидно, я мог бы нажать кнопку RemoveCustomer, чтобы получить доступ к removeByName и что-то сделать, но если бы addByName TextField не был пустым, это добавило бы клиента.

То, что я хочу знать, находится в моем скриптлете, откуда я знаюкакая кнопка отправки была нажата?

Ответы [ 2 ]

2 голосов
/ 12 января 2011

Вы можете поместить разделы в <div> с классом или идентификатором, который прояснит, что произошло.

Мне кажется, что ваш JSP нуждается в хорошем рефакторинге.Если вы согласны, у меня есть два предложения:

  1. Устранить весь код скриптлета и использовать только JSTL.JSP предназначены только для просмотра;переместить всю логику со страницы.
  2. Логика действительно принадлежит контроллерам на стороне сервера.Иметь сервлет Front View Controller, который принимает весь входящий трафик и делегирует запросы классам, которые написаны специально для обработки различных вариантов использования.
  3. Возможно, вы достигли уровня, когда ваше приложение могло бы извлечь выгоду из инфраструктуры MVC, такой как Spring, Калитка и т. Д. Я бы порекомендовал изучить один из них.
1 голос
/ 12 января 2011

Вы можете сделать request.getParameter («имя кнопки отправки»).Здесь имя кнопки отправки - RemoveCustomer или AddCustomer.

...