2014-05-20 3 views
0

Я пытаюсь ссылаться на переменную javascript в java-вызове, но, к сожалению, я получаю ошибку, которую переменная (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 запускается на веб-сервере.

Вы не можете передать userURL из браузера на сервер, не создавая другого запроса HTTP.

Таким образом, вам необходимо либо переместить этот код проверки на клиентскую сторону (Javascript), либо отправить его на сервер (отправка формы или Ajax).

0

Вы не можете ссылаться на переменную JS в JSP srciptlet. Вы должны определить переменную JSP.

0

Для всех целей все, что не является JSP-кодом, можно рассматривать как немые строки без каких-либо признаков для контейнера Java. Это означает, что ваш сервер ничего не знает о значениях переменных Javascript. Код Javascript не выполняется одновременно с кодом Java, но гораздо позже в жизненном цикле приложения, а не на сервере, а на клиенте, то есть на браузере.

Я не знаю, что вы пытаетесь сделать, но вы должны заглянуть в вызовы Ajax, чтобы вы могли передавать информацию, например переменные, от вашего клиента к вашему серверу по определенному вызову.

Смежные вопросы