【问题标题】: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 代码?

不,这是不可能的。

概括地说,一旦请求到达服务器:

  1. 服务器运行任何 JSP 并生成一个新页面。在这一步之后,任何 JSP 的事情都完成了。
  2. 服务器将生成的页面发送给客户端
  3. 客户端(浏览器)看到页面,可能会运行一些 Javascript(如果存在)

你想要的行为是:

  1. Javascript 代码首先运行,检查if 语句的条件,然后仅在“条件”为真时继续处理if 语句的主体。
  2. Javascript if 块内的 JSP 代码运行

实际行为是:

  1. 无论您预期的代码逻辑是什么,JSP 代码都会首先运行。整个页面中的所有 JSP 将始终首先运行。
  2. JSP 代码的输出与 apge 中的其余静态 HTML+Javascript 混合在一起。
  3. 浏览器第一次参与进来,看到新建的页面:JSP输出+静态HTML和Javascript。
  4. 浏览器在页面中运行任何 Javascript。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2012-05-03
    • 2016-06-28
    • 1970-01-01
    • 2021-10-13
    • 2020-08-16
    • 2015-12-24
    • 1970-01-01
    相关资源
    最近更新 更多