2014-07-03 115 views
1

我想在javascript函數中讀取jstl變量。在JavaScript代碼中讀取jstl變量。

JS代碼提交表單。

$("#userSubmit").on('submit', function() { 
    document.getElementById("userForm").submit(); 
}); 

所以在服務器代碼 -

request.setAttribute("userId", 435); 

,並在頁面加載後 - > JavaScript代碼 -

$("#textBoxInp").keyup(function() { 
    // I want to access the userId here. 
    // in html code i can acccess it using JSTL syntax ${userId} 
}); 
+1

你真的不問一個問題 - 你只是有點說你的需要和慾望。 –

回答

4

就直接寫表達式語言在JavaScript代碼:

$("#textBoxInp").keyup(function() { 
    var userId = '${userId}'; 
}); 

N注意,如果JavaScript代碼被放置在外部文件中並在JSP中調用,這將不起作用。在這種情況下,您可以參考BalusC在這裏解釋的四種方法之一:Mixing JSF EL in a Javascript file(他解釋了五種,但其中一種是JSF特有的)。

+0

非常感謝。 – webExplorer

2

門多薩提出了一種方法,但它不會在單獨的Javascript文件的情況下工作。

在這種情況下,另一種方法是在JSP頁面中添加隱藏字段,並從Javascript中讀取相同的字段。

JSP代碼:

<input type="hidden" id="xID" name="x" value="${myAttribute}"> 

JS代碼:

var myAtt = document.getElementById("xID").value; 
0

totalClients是JSTL變量,在JavaScript中塊讀取請查看下面

<script type="text/javascript"> 

    $(document).ready(function() { 
     var tc = "<c:out value='${totalClients}'/>"; 
    }); 
1

如果您想訪問JSTL JavaScript腳本函數中的變量,您將無法直接訪問它們。這是一個迂迴的方式(易於實現)來做到這一點。

  1. 在HTML代碼中有一段帶有所需變量的段落。

    <p id = "var" disabled = "disabled">${variable}</p>

  2. 訪問使用.innerHTML JavaScript函數裏面的變量。

    function myFunction() { ... var jstl_var = document.getElementById("var").innerHTML; ... }

+0

請使用格式,因爲閱讀代碼非常困難,如果沒有格式化。 https://stackoverflow.com/editing-help – fisher3421