Передача значений с одной страницы JSP на другую страницу JSP - PullRequest
2 голосов
/ 05 марта 2010

Я получаю значения из базы данных в таблицу в jsp. (В столбец)

Я хочу вставить это значение в другую таблицу в базе данных. Для этого я использую другую таблицу jsp для вставки этого значения в db и вызываю эту страницу jsp на вкладке действия формы моего предыдущего jsp.

Я использую метод request.getParameter(), чтобы получить значения из моей первой страницы jsp на новую страницу jsp, но я не смог получить значения, используя request.getParameter().

Как я могу решить это?

Ответы [ 4 ]

3 голосов
/ 05 марта 2010

При открытии 2-й JSP вы должны передать соответствующие параметры (я полагаю, ID) в качестве GET-параметров на вторую страницу. То есть ссылка в вашей таблице должна выглядеть так:

<a href="edit.jsp?itemId=${item.id}" />

Затем вы можете прочитать этот параметр с помощью request.getParameter("itemId") на второй странице.

(если не используются JSTL и EL, ${..} заменяется на <%= .. %>)

1 голос
/ 05 марта 2010

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

Если запрос со страницы A на страницу B вызван ссылкой, то вам необходимо определить параметры в URL:

<a href="update.jsp?userid=${user.id}&fieldid=${field.id}">update</a>

Таким образом, они будут, как и ожидалось, доступны request.getParameter() в update.jsp.

Если запрос со страницы A на страницу B вызван формой POST, то вам необходимо определить параметры как поля ввода формы. Если вы хотите скрыть их от просмотра, просто используйте <input type="hidden">.

<form method="post" action="update.jsp">
    ...
    <input type="hidden" name="userid" value="${user.id}">
    <input type="hidden" name="fieldid" value="${field.id}">
</form>

Таким образом, они будут, как и ожидалось, доступны request.getParameter() в update.jsp.

0 голосов
/ 22 апреля 2011

Вы должны создать свой URL с тегом url:

<c:url value="edit.jsp" var="url">
    <c:param name="itemId" value="${item.id}"/>
</c:url>
<a href="${url}">edit</a>

Это даст вам возможность переписать URL-адрес (при необходимости добавьте jsessionid) и URL-кодирование ваших параметров бесплатно.

Решение, которое не использует JSTL или EL, следует рассматривать как особый случай.

0 голосов
/ 05 мая 2010

Если у вас все еще возникают проблемы с передачей значений с помощью формы и request.getParameter (), есть другой способ, который вы можете попробовать.

В вашем коде установите каждую пару значений в переменную сеанса.

session.setAttribute("userId", userid);
session.setAttribute("fieldId", fieldid);

Эти значения теперь будут доступны из любого jsp, пока ваш сеанс все еще активен.

Использование:

int userid = session.getAttribute("userId");
int fieldid = session.getAttribute("fieldId");

для получения ваших значений на странице update.jsp. Не забудьте удалить все переменные сеанса, когда они больше не используются, так как они будут храниться в памяти на время сеанса пользователя.

...