【发布时间】:2015-11-02 06:26:15
【问题描述】:
在我的网络应用程序中,我使用 Java 作为后端。在网页上,用户可以选择、删除或编辑一个/多个服务器。有关这些服务器的信息是从服务器中读取的。 Java 控制器将 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}'
不刷新页面?或者有没有其他方法可以解决这个问题?
【问题讨论】:
-
您需要在页面上刷新哪些数据?
data-serversList属性?成功调用$.ajax后,您的服务器端代码能否将此数据返回给客户端? -
我可能弄错了,但我想我只能返回一个页面或 html 部分。这意味着它将重新加载 - 部分或完整。但是在代码中我使用了 serversList 变量,这个变量写在 body 标签中。这就是为什么我认为必须有更好的方法。
标签: javascript java html angularjs jsp