【问题标题】:Set session attribute using javascript使用 javascript 设置会话属性
【发布时间】:2013-08-04 15:02:31
【问题描述】:

我在我的 jsp 页面中使用jqueryui autocomplete combobox。我需要将组合框的选定值设置为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 设置会话属性?

【问题讨论】:

    标签: java javascript ajax jsp httpsession


    【解决方案1】:

    您可能会误解 jspjavascript 存在于同一个文件中。是的,但JSP 部分在服务器端编译本身来到client

    &lt;% %&gt; 之间的代码在服务器端执行。

    Javascript 无法做到这一点。

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

    【讨论】:

      【解决方案2】:

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

      您可以使用 Ajax 来做到这一点。通过 Ajax,您必须向服务器异步发送请求,然后从 servlet 中将数据添加到会话中。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          您可以使用 javaScript 操作表单将 args 发布到 servlet 类, 和这个 servlet 类中的 setSession。

          【讨论】:

            【解决方案5】:

            这是我成功完成任务的方法。

            我创建了一个新的 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"
            });
            

            【讨论】:

              猜你喜欢
              • 2017-01-29
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-08-07
              • 1970-01-01
              • 1970-01-01
              • 2017-07-15
              相关资源
              最近更新 更多