Синтаксис для доступа к атрибутам requestScope с использованием EL - PullRequest
0 голосов
/ 18 января 2020

Это сообщение является продолжением моего предыдущего сообщения .

В моем классе сервлетов я устанавливаю атрибут запроса следующим образом:
request.setAttribute("emperor", "Naruhito");

В моем JSP неявный объект EL requestScope оценивает к следующему значению:
{javax.servlet.forward.context_path=/newbie_jsp, javax.servlet.forward.servlet_path=/HomeServlet, javax.servlet.forward.request_uri=/newbie_jsp/HomeServlet, emperor=Naruhito}

Синтаксис для извлечения атрибута emperor в моем JSP равен ${requestScope.emperor}

Однако синтаксис для извлечение атрибута javax.servlet.forward.request_uri в моем JSP - это ${requestScope['javax.servlet.forward.request_uri']}


Q) Почему существует явное расхождение между ними?

1 Ответ

0 голосов
/ 26 января 2020

Параметр запроса javax.servlet.forward.request_uri , который определен в спецификации Servlet / JSP и заполняется автоматически, содержит «.» В его названии: в этом случае вам нужно использовать синтаксис ${requestScope['Param']} (он же «скобка»).

Ваш пользовательский параметр emperor не содержит точку ('.' ), так что вы можете использовать короткую запись: ${requestScope.param}

Надеюсь, что это поможет, С уважением, Cedri c

...