javascript - 刷新 JSP 变量而不重新加载页面

标签 javascript java html angularjs jsp

在我的网络应用程序中,我使用 Java 作为后端。在网页上用户可以选择、删除或编辑一个/多个服务器。有关这些服务器的信息是从服务器读取的。 Java Controller 将 JSON 文件发送到 JSP 页面,其中包含要显示的服务器信息。

@RequestMapping(value = "/configurations.html", method = RequestMethod.GET) public ModelAndView chooseServers(ModelMap model) throws Exception {
    try {
        //reads objects from configuration and sends to the web page as JSON file.
        String result = mapper.writeValueAsString(servers);
        System.out.println(result);
        model.addAttribute("serversList", result);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return new ModelAndView("configurations"); }

数据保存到变量如下:

<html ng-app="homepage">
    <head>...</head>
    <body id="body" data-serversList='${serversList}' id="configurationsPage">
...</body>
</html>

我在 JS 中读取这些数据如下:

var items = new Array();
var main = function(){
var information = $("body").attr("data-serversList");
    var serversJson  = JSON.parse(information);
    for (var i = 0; i < serversJson.list.length; i++){
        items.push({id: serversJson.list[i].id, text: serversJson.list[i].name});
    }
}
$(document).ready(main);

这是我在服务器端更新数据的方式:

$.ajax({
    url: 'addServer.do',//the value of SpringMVC controller
    data: ({serverObjectString : serverObjectString})
});

用户更改服务器、删除、添加或编辑其中任何一项后,数据将在服务器端重新加载。但在用户方面它保持不变,除非我刷新。但我使用的是 AngularJS,这就是我进退两难的原因 - 如何将所有逻辑保持在同一个 JSP 上,但重新加载

data-serversList='${serversList}'

不刷新页面?或者有没有其他方法可以解决这个问题?

最佳答案

您正在寻找异步 JavaScript 和 XML AKA Ajax .可以使用纯 JavaScript 或任何第三方 JavaScript 库(如 JQuery)实现。

关于javascript - 刷新 JSP 变量而不重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31917876/

相关文章:

javascript - 为什么 $http 的回调不知道其自身之外的变量?

java - 同步读取 Firebase

javascript - 一页中的异步 Owl Carousel

java - 如何使用线程池并行化单个 quartz 作业?

java - 如何对对象集合进行排序

html - Chrome 扩展程序弹出窗口缩小

javascript - 将类组件转换为函数组件

html - 在 css 级别和元素级别定义的输入宽度

javascript - 为什么函数体内的 for of 循环没有给我传统 for 循环所做的预期输出?

javascript - jQuery UI DatePicker - 禁用除每个月的第一天和第 15 天之外的所有日期