2

我在我的jsp页面中使用jqueryui 自动完成组合框。我需要将组合框的选定值设置为.HttpSession

我尝试如下。

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

4

5 回答 5

5

您可能会误解它jsp并存javascript在于同一个文件中。是的,但是JSP在服务器端编译的部分本身就是client.

中间的代码<% %> 在服务器端执行。

你不能用Javascript.

您需要为此发出服务器请求(有表单、Ajax、url..等)。

于 2013-08-03T11:16:39.397 回答
1

以下是我成功完成任务的方式。

我创建了一个新的 servlet 并触发 AJAX 调用,如下所示。然后我comboboxvalue从 servlet 设置会话。

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"
});
于 2013-10-15T07:28:34.477 回答
1

Java 脚本是一种客户端技术。无法从 Java 脚本设置任何会话变量。

您可以使用 Ajax 执行此操作。通过 Ajax,您必须异步向服务器发送请求,然后从 servlet 中将数据添加到会话中。

于 2013-08-03T11:14:22.227 回答
0

您不能在 JavaScript 中设置会话值。

对于您的情况,您可以在选择框中触发 onChange 事件的 AJAX 调用。您可以简单地将选择框值发送到服务器并将其置于会话中。

于 2013-09-18T09:46:48.257 回答
0

您可以使用javaScript 操作表单将args 发布到一个servlet 类中,并在该servlet 类中设置会话。

于 2017-07-05T08:41:03.823 回答