【问题标题】:Passing variables with localStorage.setItem using java, json, ajax and html使用 java、json、ajax 和 html 通过 localStorage.setItem 传递变量
【发布时间】:2018-09-10 18:13:12
【问题描述】:

我正在尝试使用 localStorage 在页面之间传递变量。在java中我填充了一个列表:

output.add(0, accountGroup.getAccountId());
output.add(1, accountGroup.getLevel());
output.add(2, accountGroup.getGroupName());
output.add(3, "0");
output.add(4, accountGroup.getGroupSection());
output.add(5, accountGroup.getGroupNAS());
output.add(6, nextView);

String json = new Gson().toJson(output);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);

然后我尝试将每个变量存储在 ajax 中:

.done(function(responseJson){
                dataType: "json";    
                localStorage.setItem('lsAccountID', $('#temp').val(responseJson[0]));
                alert(localStorage.getItem('lsAccountID'));
                localStorage.setItem('lsAccountLevel', $('#temp').val(responseJson[1]));
                localStorage.setItem('lsGroupName', $('#temp').val(responseJson[2]));
                localStorage.setItem('lsNoGroupsStarted', $('#temp').val(responseJson[3]));
                localStorage.setItem('lsGroupSection', $('#temp').val(responseJson[4]));
                localStorage.setItem('lsGroupNAS', $('#temp').val(responseJson[5]));
                localStorage.setItem('lsNextView', $('#temp').val(responseJson[6]));

                window.location.assign("SelectPerson.html");
})

这没有存储正确的值(在这种情况下为“7”),这由“alert(localStorage.getItem('lsAccountID'));”显示返回“[object Object]”而不是“7”。我知道“7”正在由“output.add(0, accountGroup.getAccountId());”存储通过添加“System.out.println”。

【问题讨论】:

  • 不要 alert 调试的东西。使用browser console (dev tools)(点击F12)并使用console.log。
  • 为什么需要这个?
  • 如果您想查看比[object Object] 更多的细节,比如该对象的实际内容,那么console.log 将是最好的方法。
  • 嗨 Xufox,日志如下,我认为这不等同于这个问题: Uncaught Error: Syntax error, unrecognized expression: null at Function.fa.error (jquery .min.js:2) 在 fa.tokenize (jquery.min.js:2) 在 fa.select (jquery.min.js:2) 在 Function.fa [as find] (jquery.min.js:2)在 n.fn.init.find (jquery.min.js:2) 在新的 n.fn.init (jquery.min.js:2) 在 n (jquery.min.js:2) 在 Object. (selectPerson-ajax.js:29) 在 i (jquery.min.js:2) 在 Object.fireWith [as resolveWith] (jquery.min.js:2)
  • 有趣的是人们在不提供 cmets 的情况下投票。我想他们也不知道答案。

标签: java html json ajax


【解决方案1】:

答案是使用 parseJSON:

       .done(function(responseJson){
            dataType: "json";    
            var result = $.parseJSON(responseJson);

            localStorage.setItem('lsAccountID', result[0]);
            localStorage.setItem('lsAccountLevel', result[1]);
            localStorage.setItem('lsGroupName', result[2]);
            localStorage.setItem('lsNoGroupsStarted', result[3]);
            localStorage.setItem('lsGroupSection', result[4]);
            localStorage.setItem('lsGroupNAS', result[5]);
            localStorage.setItem('lsNextView', result[6]);

            if(result[6] == "1"){
                window.location.assign("SelectPerson.html");
            }else{
                $('#ajaxGetUserServletResponse').text(result[6]);
                $("#accountName").focus();
            }
            window.location.assign("SelectPerson.html");
        })

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多