Java и JavaScript совершенно разные - несмотря на их сходные названия. Они имеют столько же общего, сколько и слова «боль» и «рисование».
- JSP код выполняется на сервере еще до того, как пользователь получает страницу.
- JavaScript выполняется на компьютере конечного пользователя, после того как сервер выполнил весь свой код, собрал страницу и доставил ее в браузер пользователя.
Сервер не обрабатывает никакой JSP содержимое, отличное от JSP тегов, или известные библиотеки тегов, такие как JSTL. Этот элемент <script>
и его содержимое просто добавляются на конечную страницу как есть, без какой-либо интерпретации или исполнения.
Другими словами, if (true)
ничего не значит для сервера. Он игнорирует JavaScript и выполняет только <%
… %>
части.
Когда страница будет окончательно доставлена в браузер, источник будет содержать следующее:
<script>
if (true) {
} else {
}
</script>
… Потому что JavaScript не был обработан каким-либо образом на стороне сервера. JavaScript в HTML страницы запускаются в браузерах, а не на сервере.
Вы, вероятно, хотите что-то вроде этого:
<%
if (true) {
System.out.println("true");
} else {
System.out.println("false");
}
%>
Не то, что вышеупомянутое не должно быть в Элемент <script>
, и фактически не имеет смысла помещать его в один элемент, поскольку <script>
содержит JavaScript, а это код Java на стороне сервера, а не JavaScript.