【问题标题】:Spring form does nothing弹簧形式什么都不做
【发布时间】: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 “什么都不做”意味着它实际上什么都不做。提交按钮不做任何事情。没有状态码或任何东西。
  • 所以按下提交按钮不会启动发布请求? &lt;form&gt;里面是提交按钮吗?
  • 如果您在调试模式下打开浏览器,您会看到 POST 吗?
  • 啊,我很愚蠢。我的提交表单中有一个注销表单,导致提交表单不执行任何操作

标签: java spring jsp spring-mvc


【解决方案1】:

您可以尝试在表单标签中添加动作属性吗?

<form:form method="POST" modelAttribute="settings" commandName="settings" action="/settings">

如果您的 Springframework DispatcherServlet servlet 映射的 url 模式不是 web.xml 中的“/”,请将该模式附加到“/settings”之前,如下所示:

<form:form method="POST" modelAttribute="settings" commandName="settings" action="{url pattern}/settings">

【讨论】:

  • 能否分享一下你的web.xml和Spring Web配置文件xml?
猜你喜欢
  • 1970-01-01
  • 2022-01-24
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 2019-03-08
  • 2016-12-24
  • 2017-04-18
相关资源
最近更新 更多