【发布时间】:2016-01-26 08:50:39
【问题描述】:
我正在尝试更新用户设置信息。当我点击提交时,没有任何反应。
这是我的设置控制器
@Secured({ "ROLE_USER", "ROLE_ADMIN" })
@RequestMapping(value = "/settings**", method = RequestMethod.GET)
public ModelAndView settings() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userName = auth.getName();
User userInfo = userDAO.getUserInfo(userName);
Settings settings = userDAO.getSettingsInfo(userInfo.getDetails().getMacAddress());
List<Plugs> plugs = userInfo.getDetails().getPlugs();
ModelAndView model = new ModelAndView();
model.addObject("settings", settings);
model.addObject("plugs", plugs.get(plugs.size() - 1));
return model;
}
@Secured({ "ROLE_USER", "ROLE_ADMIN" })
@RequestMapping(value = "/settings", method = RequestMethod.POST)
public ModelAndView settings(@Valid @ModelAttribute("settings") Settings settings, BindingResult result) {
ModelAndView model = new ModelAndView();
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userName = auth.getName();
User userInfo = userDAO.getUserInfo(userName);
if (result.hasErrors()) {
model.setViewName("welcome");
} else {
model.setViewName("settings");
userDAO.updateSettings(userInfo);
}
return model;
}
JSP 表单
<form:form method="POST" modelAttribute="settings" commandName="settings">
这是我的提交按钮
<input type="submit" value="submit" name ="submit">
如何让我的表单执行任何操作?它应该更新 MySQL 数据库中的用户详细信息。如果你想发布更多代码,我会添加它。
【问题讨论】:
-
“什么都不做”是什么意思?模型是空的吗?提交后,您是否收到状态代码(200 除外)?提交是否有效?
-
@fateddy “什么都不做”意味着它实际上什么都不做。提交按钮不做任何事情。没有状态码或任何东西。
-
所以按下提交按钮不会启动发布请求?
<form>里面是提交按钮吗? -
如果您在调试模式下打开浏览器,您会看到 POST 吗?
-
啊,我很愚蠢。我的提交表单中有一个注销表单,导致提交表单不执行任何操作
标签: java spring jsp spring-mvc