Почему на основном jsp оба значения равны, а во включенном jsp я не вижу его значения?
Поскольку <c:set>
по умолчанию сохраняет их на страницеscope.
Почему currentStudy отображает свое значение внутри включенного jsp?
Поскольку он также доступен в качестве атрибута сеанса.
Есть ли какое-либо решение, которое помогает мне получить доступ к набору переменных в родительском jsp, и к нему можно получить доступ во включенном jsps?
Вам необходимо установить атрибут scope
для <c:set>
в request
или выше.Область (по умолчанию) page
доступна только для текущего JSP, но не для всех включенных JSP.
Обратите внимание, что строка
<c:set var="currentStudy" value='<%=(String)session.getAttribute("currentStudy")%>'/>
является ненужной ,${currentStudy}
уже будет сканировать переменные в областях страниц, запросов, сеансов и приложений.Поскольку вы, очевидно, уже установили его в области видимости сеанса, вам не нужно копировать его в область видимости страницы.Так что просто удали эту строку.Все вместе, ваши верхние 2 <c:set>
строки должны быть заменены этой единственной строкой:
<c:set var="hPediquestStudy" scope="request"><spring:message code="study.hpediquest.mapping" /></c:set>
, и тогда она будет работать так, как вы планировали.
См. Также: