2012-06-08 4 views
0

У меня есть view.jsp, и я объявляю переменную (parentUrl) внутри функции JavaScript в этом JSP. Я хочу передать эту переменную в свой Java-класс (MyAction). Вот мой кодПередача переменной из JavaScript в класс действия

function editAddress(){ 
    var parentUrl=document.referrer; 
    request.setAttribute("url", parentUrl); 
    document.forms[0].action = "path of the Myaction class"; 
    document.forms[0].submit();   
} 

После нажатия на кнопку SAVE в View.jsp выше функция вызывается, что переадресация мой запрос класса MyAction и класса MyAction затем направляет запрос на другую страницу JSP. Я хочу передать переменную parentUrl, которая будет передана в классе MyAction, поэтому я могу использовать значение этой переменной для написания некоторой логики. Вот MyAction код класса, который извлечение значения переменного из запроса:

String parentURL = (String)request.getParameter("url"); 

В основном я хочу, чтобы получить URL родительской страницы, откуда запрос исходит от. Вот почему я использую функцию document.referrer.

Моя проблема в том, когда я добавляю эти две строки в свою функцию editAddress(), моя кнопка SAVE перестает работать и не переходит на другую страницу. Я не знаю, почему это происходит.

var parentUrl=document.referrer; 
request.setAttribute("url", parentUrl); 

Пожалуйста, дайте мне знать любой другой лучший способ передать эту переменную parentUrl в класс \ MyAction из JavaScript. Благодаря!!

+1

ли вы понимаете, что Java и JavaScript два разных языка, что JavaScript выполняется на стороне клиента, а также Java на сервере -боковая сторона? Если вы хотите, чтобы URL-адрес был отправлен, вам необходимо сохранить его в скрытом поле или в форме, чтобы оно было отправлено с формой. Ваш JS-код недопустим, поскольку запрос является неопределенной переменной JS. –

ответ

2

request.setAttribute() не является javascript-методом, поэтому вы не можете использовать его таким образом. Вместо этого объявите скрытое поле в своей форме и установите его значение для отправки.

<form> 
... 
<input type="hidden" name="parentURL"> 
... 
</form> 

function editAddress(){ 
    var parentUrl=document.referrer; 
    document.forms[0].parentURL.value=parentUrl; 
    document.forms[0].action = "path of the Myaction class"; 
    document.forms[0].submit();   
} 

Объявить parentURL (геттер/сеттер) в классе действий для доступа к его значение

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