Передача параметра из AJAX на страницу JSP - PullRequest
0 голосов
/ 10 февраля 2012

Я пытаюсь передать параметр из AJAX обратно на мою страницу JSP.Вот мой пример кода:

JS-файл:

$(document).ready(function() { 
            $.ajax({
            type: "GET",
            url: "URL...",
            dataType: "xml",
            success: function(xml) {
                $(xml).find('Rowsets').each(function(){ 
                            var x = $(this).find('Auto_Id').text() // Assign data from Auto_Id into variable x
                    document.form.y.value = x; // Pass the parameter back to the JSP page
                    });
                }
    });
});

.JSP-файл:

<FORM name="form"><input name="y" value="" /></FORM> //value left blank for AJAX to auto-populate

код выше работает - я могу получить параметр х.Однако возможно ли получить значение x в следующем формате на той же странице .JSP?

<%= session.getAttribute("x") %>

Или получите значение x и передайте его в теги java <% =%>?

Цель этого - получить параметр из XML (через AJAX) при загрузке страницы передайте параметр обратно на мою страницу JSP, чтобы я мог использовать его для динамического создания URL-адреса (например, «http://xyz&Param=" + session.getAttribute (" x ") +" ")). Обратите внимание, что URL-адрес долженбыть определенным в тегах java <% = ....%> страницы jsp.

1 Ответ

1 голос
/ 10 февраля 2012

Вы не можете использовать переменную Javascript в скриптлетах.Я надеюсь, что вы знаете, что JSP выполняются на стороне сервера и до того, как вы совершите вызов AJAX.Вы должны сделать некоторые изменения в своем коде, чтобы добиться этого, создайте URL в JS.Как это,

В JSP, вы можете иметь,

<input type='hidden' value='<%=dynamicallyCreatedURL%>' id='dynamicallyCreatedURL'/>

Прочитайте вышеуказанный скрытый элемент в обратном вызове Ajax Response, чтобы создать URL.Вы можете использовать созданный URL в любом месте.Здесь я использовал в качестве формы действия

$(xml).find('Rowsets').each(function(){
    var x = $(this).find('Auto_Id').text() // Assign data from Auto_Id into variable
    document.form.y.value = x; // Pass the parameter back to the JSP page 

    //Here construct the URL and set as forma action
   var dynamicallyCreatedURL = document.getElementById('dynamicallyCreatedURL').value+'?param='+x; 
document.form.action = dynamicallyCreatedURL;
}
...