Как передать параметр сервлету
-
04-07-2019 - |
Вопрос
Как передать параметр из useBean страницы в JSP в сервлет в Java?У меня есть некоторые данные в форме, которая без проблем передается с помощью кнопки отправки, но нет возможности отправить что-либо еще.Пожалуйста помоги?Вот мой код:
<input name = "deleteGameButton" type = "submit" value = "Delete"
onclick = "submitToServlet('DeleteGameServlet');">
Вот соответствующий javascript:
function submitToServlet(newAction)
{
document.userGameForm.action = newAction;
}
Я бы хотел, чтобы сервлет имел доступ к userBean
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
Решение
Вы тут что-то путаете.
onclick() — это Javascript, который выполняется на стороне клиента.У него нет (прямого) способа обновления bean-компонента в области сеанса.Этот компонент остается на стороне сервера и использовался при создании HTML-страницы. созданный.Чтобы передать параметры обратно в сервлет, вам нужно использовать старые добрые поля формы и отправить форму.
Добавьте в форму дополнительные поля, установите их значения перед отправкой, а затем отправьте.
В сервлете вызовите request.getParameter("name");
P.S.Чтобы автоматизировать такие вещи ИСПОЛЬЗУЙТЕ СТРОЙКИ.:-) Struts делает именно то, что вы хотите:перед передачей параметров действию он заполняет компонент этими параметрами.Прозрачно.
Другие советы
Это зависит именно от того, что вы пытаетесь сделать.А
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
позволит вам использовать атрибут userBean сеанса в вашем jsp.Если в сеансе нет атрибута userBean, он создаст новый (используя конструктор по умолчанию для org.project.User) и поместит его в сеанс.
Затем, когда вы доберетесь до сервлета, вы можете получить его с помощью:
User user = (User)request.getSession().getAttribute("userBean");
getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");
dispatcher.forward (request, response);
Здравствуйте, попробуйте следующий тег:
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/>
<jsp:setProperty name="beanName" property="propertyname" value="value"/>
</jsp:useBean>
подробнее здесь
Удачи!