如何在JavaScript中使用JSP标记?

use*_*582 2 javascript jsp

如何在JavaScript文件中使用JSP标记?

有什么办法吗?

Bal*_*usC 5

JSP是一种在服务器端运行的视图技术,您可以使用它来编写HTML/CSS/JS等模板文本.您可以使用JSP taglibs和EL来控制页面流和使用Java代码动态输出.这也涉及JavaScript内容/输出.JSP运行后,它基本上生成一个HTML页面并将其发送到客户端.您可以使用JSP动态输出后端数据,就好像它是JavaScript变量一样.例如:

<script>
    var foo = '${someBean.someProperty}';
</script>
Run Code Online (Sandbox Code Playgroud)

一旦HTML页面(内置CSS/JS)到达客户端(右键单击页面和查看源,你将看不到任何Java/JSP代码行),那么HTML将开始被解释,CSS将会开始应用,JS将开始执行.客户端没有Java/JSP代码的方法.如果您在客户端中查看生成的源,上面的示例现在看起来像:

<script>
    var foo = 'somePropertyValue';
</script>
Run Code Online (Sandbox Code Playgroud)

这样JavaScript就可以即时访问服务器端变量.

现在反过来了; 让JavaScript访问/调用Java/JSP代码的唯一方法是实际向服务器端发送HTTP请求.这可以通过多种方式完成:执行window.location同步GET请求,或执行form.submit()同步GET或POST请求,或执行XMLHttpRequest#send()异步请求(也称为Ajax).

或者,您也可以让JavaScript设置表单的(隐藏)输入字段,以便在用户提交表单时"自动"使用表单提交.无论哪种方式,服务器端的Java/JSP代码都能够以通常的请求参数方式访问JavaScript控制的值.

要了解有关Java/JSP和JavaScript之间隔离墙的更多信息,您可能会发现本文很有用.