2014-05-20 13 views
0

我試圖在Java調用引用一個JavaScript變量但不幸的是我得到了錯誤的變量(userURL)不能得到解決。我怎樣才能引用變量?無法引用JavaScript變量在java調用

<%@ page language="java" %> 
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> 
<%@ page import="java.net.*, org.owasp.esapi.ESAPI, org.owasp.esapi.Validator" %> 

<script type="text/javascript" language="javascript"> 

function validateForm() 
{ 

    var userURL = "http://www.google.com"; 
    var isValidURL = <% ESAPI.validator().isValidInput("URLContext", userURL, "URL", 255, false); %> 
    if (isValidURL) { 
     alert("true"); 
    } else { 
     alert("false"); 
    } 
} 

</script> 
+0

瞭解頁面生命週期。 – epascarello

回答

4

userURL存在於網絡瀏覽器中。

JSP代碼在Web服務器上運行。

無法從瀏覽器傳遞到服務器userURL未做另一個HTTP請求。

所以你需要可以移動該驗證碼到客戶端(JavaScript),或郵寄到服務器(表單提交或阿賈克斯)。

0

不能引用JS變量JSP srciptlet。 您應該定義JSP變量。

0

對於所有的意圖,一切不是JSP代碼可以被看作是沒有任何意義了Java容器啞弦。這意味着你的服務器不知道任何有關Javascript變量的值。 Javascript代碼不是與Java代碼同時執行,而是在應用程序生命週期的較後階段執行,而不是在服務器上,而是在客戶端(即瀏覽器)上執行。

我不知道你正在嘗試做的,但你應該看看Ajax調用,這樣你就可以通過一個特定的呼叫傳遞信息,例如變量值,從客戶到您的服務器。