如果我的代码类似于以下代码,我可以毫无问题地运行吗?我假设Java将在javascript之前运行,因此javascript不会有问题,但我之前没有这样做过:
<script type="text/javascript">
<% functThatOutputsJavascript() %>
</script>
答案 0 :(得分:0)
这是非常非常糟糕的编程风格,但是,有可能。
我正在处理的代码已经做了一些非常类似的事情。我想你真的想做:
<script type="text/javascript">
<%= functThatOutputsJavascript() %>
</script>
实际上,你可以做得更糟,使用Java条件来修改Javascript输出:
<script type="text/javascript">
while (i > 0) {
<% if (serverVar)) { %>
console.log("Server says yes!");
<% } else { %>
console.log("Server says no!");
<% } %>
}
</script>
如果serverVar为true,则会输出此代码:
<script type="text/javascript">
while (i > 0) {
console.log("Server says yes!");
}
</script>
或此代码如果为false:
<script type="text/javascript">
while (i > 0) {
console.log("Server says no!");
}
</script>
这是一种可怕的编码风格,我希望你不会在实践中这样做!如果您想知道如何避免编写这样的代码,请查看以下问题:How to avoid Java code in JSP files?
一般建议是使用JSP EL(JSP表达式语言)将服务器端变量设置为Javascript,然后在Javascript中编写所有逻辑。