我是Spring和Web应用程序的新手。
我在控制器中创建包含字体大小的对象,然后将其添加到模型中。
private String fontSize = "24";
@RequestMapping(value = "/", method = RequestMethod.GET)
public final ModelAndView mainGet(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException {
ModelAndView model = new ModelAndView("home");
model.addObject("fontSize", fontSize);
return model;
}
我将它传递给JSP,然后使用jQuery设置字体大小。 在应用程序中我有更改字体大小的按钮...一切正常,但当我刷新或更改页面时,这些设置都会丢失。
如何在模型中保存此值?每当我改变大小时,我应该通过AJAX进行后期调用吗?
答案 0 :(得分:1)
服务器和客户端之间没有自动设置。如果您在客户端上进行更改,比如使用jQuery,并且您希望保留该更改,则必须将值存储在某处。您可以在服务器端执行此操作,例如,在首选项数据库中,或在servlet容器的会话中执行此操作。或者,您可以在客户端执行此操作,例如,使用本地存储或Cookie。您甚至可以将其存储为HTML中状态对象的一部分,并在导航网站时随身携带状态对象。
存储它的正确位置取决于您的使用案例和系统设计。每次用户进行更改时,您当然可以使用AJAX发布更新的值,这意味着您需要一个方法来处理它并在某处保留值,如下面的(未经测试的)代码。:
@RequestMapping(value = "/prefs/fontSize", method = RequestMethod.PUT)
public void putFontSize(@RequestBody String fontSize)
throws ServletException {
// persist fontSize here.
}
答案 1 :(得分:0)
我下载了jQuery Cookie插件,我认为保存此值的最佳方法是使用cookie(或者这可能是最简单的方法)。
这是我用过的插件的链接: