Передача значений с одной страницы jsp на другую страницу jsp

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

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

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

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


person devuser    schedule 05.03.2010    source источник
comment
Используйте: ‹input type=hidden name=name value=‹%=value%›› Затем получите доступ к значению на странице JSP, используя request.getParameter.   -  person    schedule 21.12.2010


Ответы (4)


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

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

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

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

person Bozho    schedule 05.03.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.

person BalusC    schedule 05.03.2010

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

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

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

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

Использовать:

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

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

person Gthompson83    schedule 04.05.2010

Вы должны создать свой 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, следует рассматривать как особый случай.

person matt burns    schedule 22.04.2011