【问题标题】:How to write JSP Code inside a Javascript if-statement?如何在 Javascript if 语句中编写 JSP 代码?
【发布时间】:2022-07-03 01:32:06
【问题描述】:
希望大家一切顺利!
我想知道是否有办法在 Javascript if 语句中编写 JSP 代码?
比如funStuff.java类中的testVoid()方法改变了类中的某个String,然后retK() 返回那个字符串。
但是,JSP 代码的运行与 if 语句中的条件无关。
我看到另一个帖子说使用 JSTL 可以解决这个问题,但我不确定如何使用 JSTL 编写预期的代码段。
任何帮助将不胜感激!
谢谢!
<script>
if (false) {
<%
funStuff.testVoid();
%>
}
console.log('<%= funStuff.retK() %>');
</script>
【问题讨论】:
标签:
javascript
java
if-statement
jsp
jstl
【解决方案1】:
我想知道是否有办法在 Javascript if 语句中编写 JSP 代码?
不,这是不可能的。
概括地说,一旦请求到达服务器:
- 服务器运行任何 JSP 并生成一个新页面。在这一步之后,任何 JSP 的事情都完成了。
- 服务器将生成的页面发送给客户端
- 客户端(浏览器)看到页面,可能会运行一些 Javascript(如果存在)
你想要的行为是:
- Javascript 代码首先运行,检查
if 语句的条件,然后仅在“条件”为真时继续处理if 语句的主体。
- Javascript
if 块内的 JSP 代码运行
实际行为是:
- 无论您预期的代码逻辑是什么,JSP 代码都会首先运行。整个页面中的所有 JSP 将始终首先运行。
- JSP 代码的输出与 apge 中的其余静态 HTML+Javascript 混合在一起。
- 浏览器第一次参与进来,看到新建的页面:JSP输出+静态HTML和Javascript。
- 浏览器在页面中运行任何 Javascript。