Как получить name and value of all context-parameters в jsp с помощью JSTL и EL(НЕ ДУБЛИКАТ!)

125
04 июля 2019, 04:30

Вот,вроде-бы,EL хорошая штука.Тебе не нужно делать вставки,которые очень громоздкие.

<% String name = (String) request.getAttribute("name"); %>

Можно заменить на красивое EL :

${name} , ${requestScope.name}

Но,как мне получить,допустим, context-param с помощью EL?

Я знаю про существование EL Implicit Objects.Большинство из них предоставляет из себя Map,меньше - массив типа String

Пытаюсь вот так :

${pageContext.servletContext.?}

Кажется,что servletContext по-типу javaBean и нам нужно указать какое-то property. А property Только одно доступное связанное с init-parameters:

${pageContext.servletContext.initParameterNames}

Толку от него я не нашел.Можно конечно через c:forEach прогнать :

<c:forEach var = "param" items = "pageContext.servletContext.initParameterNames">
 <c:out value = "${param}">
</forEach>

По идее должен получить хотя-бы имена. В итоге - не выводит даже имен. Вот сами context-param :

<context-param>
<param-name>name</param-name>
<param-value>Sckoriy</param-value>
</context-param>
<context-param>
<param-name>surname</param-name>
<param-value>Sckoriy</param-value>
</context-param>

Нашел интересную вещь ,которую предлагают для решению моего вопроса :

${initParam.parameterName}

Но это же не правильно!

InitParam - Конфигурационные параметры, указанные для страницы или сервлета в дескрипторе приложений web.xml.НЕ ДЛЯ параметров контекста!

Но,если попытаться получить параметр-контекста таким образом :

${initParam["name"]}
${initParam["surname"]}

То все работает,что не есть логичным.Ибо это initParam jsp.А если у нас два параметра разной области будут иметь одинаковые ключи :

<context-param>
<param-name>name</param-name>
<param-value>Sckoriy</param-value>
</context-param>
<servlet>
<servlet-name>InitParameters</servlet-name>
<jsp-file>/JB.jsp</jsp-file>
<init-param>
    <param-name>name</param-name>  
    <param-value>Sckorik_Sergest@ukr.net</param-value>  
</init-param>
</servlet>

<c:out value = "${initParam["name"]}"

Ответ будет - Sckoriy.Параметр из контекста приложения ,а не контекста jsp.

READ ALSO
Экспорт данных из TinyDB в csv

Экспорт данных из TinyDB в csv

В моем приложении я использую библиотеку TinyDB для сохранения\восстановления данных из SharedPreferencesНапример:

140
Проверка логера на root в log4j2

Проверка логера на root в log4j2

Помогите реализовать проверку, получил ли я логгер с настройками Root, или нет

149
Создать массив игроков и &ldquo;проверить&rdquo; их по очереди [закрыт]

Создать массив игроков и “проверить” их по очереди [закрыт]

Никак не могу создать массив игроковВ классе Team все установил, сеттеры, геттеры, конструктор и toString

140
Java все об Os вывести на экран

Java все об Os вывести на экран

Хочу на Java все об Os вывести на экранТоесть:

121