2013-08-03 7 views
2

Я использую jqueryui autocomplete combobox в моей jsp страница. Мне нужно установить выбранное значение combo-box на HttpSession.Установить атрибут сеанса с помощью javascript

Я пробовал, как показано ниже.

this._on(this.input, { 
    autocompleteselect: function (event, ui) { 
     // alert(ui.item.value); 
     var value = ui.item.value; 
     <% session.setAttribute("comboboxvalue",value); %> 

     ui.item.option.selected = true; 
     this._trigger("select", event, { 
      item: ui.item.option 
     }); 
} 

Проблема с таким образом, что код не признают value параметров.

Как я могу решить эту проблему и установить атрибут сеанса с помощью javascript?

ответ

0

Вот как я успешно выполнил свою задачу.

Я создал новый сервлет и вызываю вызов AJAX, как показано ниже. Затем я установил comboboxvalue на сеанс из сервлета.

this._on(this.input, { 
    autocompleteselect: function(event, ui) { 
     $.ajax({ 
     type: 'POST', 
     url: 'AjaxServlet', 
     dataType : 'json', 
     data: { comboboxvalue : ui.item.value } 
     }); 
     ui.item.option.selected = true; 
     this._trigger("select", event, { 
      item: ui.item.option 
     }); 
    }, 

    autocompletechange: "_removeIfInvalid" 
}); 
1

Java-скрипт - это технология клиентской стороны. Невозможно установить любые переменные сеанса из сценария Java.

Вы можете сделать это с помощью Ajax. Через Ajax вам необходимо отправить запрос на сервер асинхронно, а затем добавить данные в сеанс из сервлета.

4

Вы можете неправильно понимать, что jsp и javascript существуют на одном файле. Да, но JSP часть компиляции на стороне сервера сама доходит до client.

Код между <% %> выполняется на сервере.

Вы не можете сделать это с помощью Javascript.

Вам необходимо сделать запрос на сервер (для этого есть формы, Ajax, url..etc).

0

Вы не можете установить значения сеанса в JavaScript.

Для вашего случая вы можете вызвать вызов AJAX для события onChange в вашем поле выбора. Вы можете просто отправить значение поля выбора на сервер и поместить его в сеанс.

0

вы можете использовать JavaScript операционную форму, оставьте арг к классу сервлетов, и setSession в этом сервлета классе.

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