【发布时间】:2016-02-12 02:33:49
【问题描述】:
在我的控制器中,将 MySQL 数据库中的值放入 ModelAndView object
有一个单独的程序可以更新表格,并且 MVC 应该获取该值,因此没有表格可以更新该表格。
当表格更新,并且当我在浏览器上点击刷新时,页面上的值不会更新。
控制器
@SuppressWarnings("unchecked")
@Secured({ "ROLE_USER", "ROLE_ADMIN" })
@RequestMapping(value = { "/", "/welcome" }, method = RequestMethod.GET)
public ModelAndView defaultPage(@ModelAttribute("user") User user) {
Collection<SimpleGrantedAuthority> authorities = (Collection<SimpleGrantedAuthority>) SecurityContextHolder
.getContext().getAuthentication().getAuthorities();
ModelAndView view = new ModelAndView("/hello");
// Redirects to admin page if user has admin role
if (authorities.toString().contains("ROLE_ADMIN")) {
return new ModelAndView("redirect:/admin");
}
/////
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userName = auth.getName();
User userInfo = userDAO.getUserInfo(userName);
System.out.println("Here's the thing " + userInfo.getLastname() + " " + userInfo.getUserDetails());
Details details = userDAO.getDetailsInfo(userInfo.getUserDetails().getLastname(),
userInfo.getUserDetails().getPostcode());
Plugs plugs = userDAO.getPlugInfo(details.getMacAddress());
String json = plugs.getJson();
JSONObject obj = new JSONObject(json); //this is the value that is not updating
String name = obj.getJSONObject("meta").getJSONObject("locate").getString("value");
System.out.println(name);
view.addObject("json", obj);
return view;
}
我知道这很被看不起,但我把它放在 Javascript 中。
像这样:
<c:set var="json" value="${json}"/>
var __data__ = ${json};
为什么更新数据库时 MVC 不能显示正确的值?
我希望它在刷新时更新
编辑:我已禁用缓存并清除缓存仍有问题。有什么帮助吗?
【问题讨论】:
-
抱歉,不太清楚你说的 jsp reloaded 是什么意思
-
数据库前面的应用程序中是否有任何应用程序级缓存或二级缓存?
-
@MadhusudanaReddySunnapu 我不完全确定
-
如果您的应用中有任何缓存,这可能是您看不到更新值的原因。你可能想检查一下。
-
我不确定缓存是否是问题所在。我的意思是它可能是,但我清除了缓存并设置了标题,它仍然没有显示正确的值。
标签: java spring spring-mvc