是否可以在jsp中使用Java编写javascript

时间:2014-02-18 01:39:50

标签: java javascript jsp jsp-tags

如果我的代码类似于以下代码,我可以毫无问题地运行吗?我假设Java将在javascript之前运行,因此javascript不会有问题,但我之前没有这样做过:

<script type="text/javascript">
<% functThatOutputsJavascript() %>
</script>

1 个答案:

答案 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中编写所有逻辑。