簡體   English   中英

JSTL。 如何從中調用函數 <script> in c:set jstl tag?

[英]JSTL. How to call a function from <script> in c:set jstl tag?

我只需要這樣的東西:

<c:set var="cls" value="${myFunc(param)}"/>

.....

<script>
    function myFunc(param) {
        if(param == true) {
            return "aaa";
        } else {
            return "bbb";
        }
    }
</script>

當我嘗試它時,出現此錯誤:

org.apache.jasper.el.JspELException:/script.jsp(22,12)'$ {myFunc()}'函數[:myFunc]未找到

你想做的是可能的嗎?

回答這個用一個詞就沒有 ...

讓我們深入探討其原因,提示在這里。JSTL(JavaServer Pages標准標記庫)..參見“服務器”一詞。 是。

JSP頁面就像Java文件一樣被編譯。 編譯成功后,可以將其作為響應發送,然后瀏覽器呈現此響應並顯示頁面。

JavaScript:是一種客戶端編程語言,這意味着JavaScript中的代碼由瀏覽器而非服務器運行。

當編譯器編譯Jsp文件時,它僅在Scriptlet和JSTL部分中起作用,其余代碼(我的意思是HTML,CSS和JS代碼的其余部分)只是一小段字符串。

現在,想象一下您的代碼中的一種情況,當Java編譯器嘗試進行編譯時,它發現myFunc必須是一種方法,但是在哪里尋找呢?

它不能將其視為javascript函數,因為javascript僅在瀏覽器中運行而不在服務器端運行。 因此,您無法設置cls變量的值,因為myFunc對於Java是未知的。

希望這可以幫助您了解JSP和服務器端的工作方式。

記住以上幾點,嘗試一些更好的方法來解決您的問題。

快樂編碼:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM