如果我的代码类似于以下内容,我可以在没有任何问题的情况下运行它吗?我假定Java将的JavaScript之前运行,这样的JavaScript不会有问题,但我没有这样做过:是否可以在jsp中使用Java编写JavaScript
<script type="text/javascript">
<% functThatOutputsJavascript() %>
</script>
如果我的代码类似于以下内容,我可以在没有任何问题的情况下运行它吗?我假定Java将的JavaScript之前运行,这样的JavaScript不会有问题,但我没有这样做过:是否可以在jsp中使用Java编写JavaScript
<script type="text/javascript">
<% functThatOutputsJavascript() %>
</script>
这是非常,非常糟糕的编程风格,但肯定的,它是可能。
我正在处理的代码已经做了一些非常类似的事情。我想你会真正想做的事:
<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是真:
<script type="text/javascript">
while (i > 0) {
console.log("Server says yes!");
}
</script>
或此代码,如果是假的:
<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中的逻辑。
你应该可以将javascript写入输出写入器。但我会推荐一种不同的方法。 – robbmj
你为什么不试试看看它是否有效? –
当然是。 JSP只是一个模板。你可以把任何你想要的模板。 –