2011-04-18 126 views

回答

9

您的JavaScript值是客戶端,你的小腳本正在運行服務器端。所以如果你想在scriptlet中使用你的javascript變量,你需要提交它們。

要實現這一點,請將它們存儲在輸入字段中並提交表單或執行ajax請求。我建議你看看這個JQuery。

0

簡單,你不能!

JSP是服務器端,JavaScript是客戶端意味着當時的JavaScript評估沒有更多'jsp代碼'。

0

如果您想要將javascript值從一個jsp傳遞給另一個javascript,然後使用URLRewriting技術將javascript變量傳遞給下一個jsp文件,並訪問請求對象中的下一個jsp。

其他明智的你不能做到這一點。

1

我解釋這個問題爲:

「誰能告訴我如何通過價值的JavaScript在JSP用?」

如果是這種情況,這個HTML文件會將服務器計算的變量傳遞給JSP中的JavaScript。

<html> 
    <body> 
     <script type="text/javascript"> 
      var serverInfo = "<%=getServletContext().getServerInfo()%>"; 
      alert("Server information " + serverInfo); 
     </script> 
    </body> 
</html> 
+2

可能是你沒有正確的讀過這個問題,他想通過JavaScript值scriplet標記,而不是值scriplet內的JavaScript值:) – 2011-04-18 10:10:53

0

它是不可能的,因爲你期待。但你可以做這樣的事情。將您的java腳本值傳遞給servlet/controller,執行處理,然後將此值傳遞給jsp頁面,方法是將其作爲您的要求放入某個對象中。然後,您可以根據需要使用此值。

17

我可以提供兩種方式,

a.jsp

<html> 
    <script language="javascript" type="text/javascript"> 
     function call(){ 
      var name = "xyz"; 
      window.location.replace("a.jsp?name="+name); 
     } 
    </script> 
    <input type="button" value="Get" onclick='call()'> 
    <% 
     String name=request.getParameter("name"); 
     if(name!=null){ 
      out.println(name); 
     } 
    %> 
</html> 

b.jsp

<script> 
    var v="xyz"; 
</script> 
<% 
    String st="<script>document.writeln(v)</script>"; 
    out.println("value="+st); 
%> 
+5

b.jsp建議不起作用,它打印'' – Jeevanantham 2014-09-03 11:42:21

+0

是b.jsp無法正常工作。任何人都可以幫助我使它工作 – 2015-02-13 05:34:02

0

你不能這樣做,但你可以做相反的事情:

在你的JSP可以

<% 
String name = "John Allepe";  
request.setAttribute("CustomerName", name); 
%> 

訪問在JS變量

<script> 
var name = "<%= request.getAttribute("name") %>"; 
alert(name); 
</script>