Доступ и печать параметров строки запроса HTTP через EL на странице JSP

Мне нужно передать параметр запроса с одной JSP на другую страницу JSP следующим образом:

<a href="cv.jsp?type=alaacv">alaa</a>

Однако, когда я пытаюсь получить к нему доступ, как показано ниже, он ничего не печатает.

<c:set var="selectedCV" value="${type}" scope="request" />
<c:out value="${selectedCV}" />

Чем это вызвано и как я могу это решить?


person palAlaa    schedule 10.02.2011    source источник


Ответы (2)


Вам нужно получить к нему доступ с помощью ${param}, который является неявным объектом EL со ссылкой на карту параметров запроса (которая на самом деле является Map<String, String>; если вам нужно Map<String, String[]> для многозначных параметров, используйте вместо этого ${paramValues}).

<c:set var="selectedCV" value="${param.type}" />
<c:out value="${selectedCV}" />

${param.type} в основном разрешается в request.getParameter("type").

Вы также можете просто сделать, как показано ниже, без необходимости <c:set>:

<c:out value="${param.type}" />

Смотрите также:

person BalusC    schedule 10.02.2011
comment
тоже не работает?? как вы думаете, проблема здесь ‹a href=CVs.jsp?type=alaacv›? - person palAlaa; 11.02.2011
comment
Тогда у вас опечатка или вы запускаете не тот код, который, по вашему мнению, запускаете. - person BalusC; 11.02.2011
comment
Это работает, когда я делаю вот так ‹c:out value=${param.type} /›, но не работает, когда я делаю вот так c:out value=${selectedCV} /› ??? - person palAlaa; 11.02.2011
comment
Тогда ваш <c:set> был неправ. Его нужно определить точно так же, как в моем ответе, перед <c:out> на той же странице. - person BalusC; 11.02.2011

Вам нужно передать данный параметр в объекте ответа второму .jsp. Как это сделать, зависит от используемого вами сервлета/фреймворка (если только фреймворк не должен каким-то образом делать это автоматически).

person Jawa    schedule 10.02.2011
comment
Я не использую сервлет, я знаю, что это проще, но сейчас мне нужно сделать простую форму запроса jsp на другую страницу jsp и отправить параметр через привязку !! - person palAlaa; 11.02.2011
comment
@Alaa - на самом деле вы используете инфраструктуру сервлетов под капотом. Платформа сервлетов лежит в основе JSP. Однако я не думаю, что этот ответ находится на правильном пути. - person Stephen C; 11.02.2011
comment
Я знал, что когда jsp:engine анализирует страницу jsp, он создает сервлет для каждой страницы. - person palAlaa; 11.02.2011