Вы смешиваете JSP / EL и JavaScript, как будто они работают синхронно.Это не верно.JSP / EL работает в веб-сервере и генерирует HTML-код, который выполняется в веб-браузере.JavaScript (JS) является частью сгенерированного HTML-кода и работает только в веб-браузере.
Вам необходимо сделать это либо полностью в JSP / EL, либо полностью в JavaScript.Вы можете использовать JSP / EL для динамического генерирования кода JS, который впоследствии выполняется, когда страница попадает в браузер.Щелкните правой кнопкой мыши страницу в браузере, выполните Просмотр источника , чтобы увидеть, что сгенерировал JSP / EL.Вы не должны видеть ни одной строки JSP / EL.Вы должны видеть только код HTML / JS.Это именно то , что JS-код, который затем выполняется.
Вы используете функцию JSP EL для проверки переменной JS, которая в данный момент вообще не находится в области видимости переменной.Это не сработает.Он может проверять только переменные JSP / EL.
Вот как вы можете это сделать на чистом JS:
<script>
var url = window.location.href;
if (url.indexOf('key') > -1) {
// ...
}
</script>
Если вы действительно настаиваете на том, чтобы делать это с помощью JSP /EL, вы можете сделать следующее:
<script>
var url = '${pageContext.request.requestURI}';
if (${fn:contains(pageContext.request.requestURI, 'key')}) {
// ...
}
</script>
Затем будет сгенерирован следующий код JS (щелкните правой кнопкой мыши страницу в браузере и Просмотреть исходный код , чтобы увидеть его):
<script>
var url = '/some/uri';
if (true) {
// ...
}
</script>
Но это не имеет смысла.Какую бы функциональную потребность вам не пришлось решить, вам нужно дважды подумать о правильном подходе.Не стесняйтесь задавать новый вопрос о правильном решении конкретных функциональных требований.