【问题标题】:<form:errors> tag in spring 3 is not showing errorsSpring 3 中的 <form:errors> 标记未显示错误
【发布时间】:2011-10-14 13:58:28
【问题描述】:

我正在开发一个带有表单验证的 Spring 3 MVC 应用程序。验证正在服务器端进行,但即使我返回 BindingResult,验证失败时标记也不会显示消息。

控制器方法:


  @RequestMapping(value = "server/{serverId}/save", method = RequestMethod.POST)
  public ModelAndView saveServer( @PathVariable long serverId,
                                  @Valid ServerEditor serverEditor, 
                                  BindingResult result){

        AdminSystemServer server = adminService.loadServer(serverId);
        if (!result.hasErrors()){
            server.setServerName(serverEditor.getServerName());
            server.setServerUrl(serverEditor.getServerUrl());
            adminService.save(server);
        }

        mv.setViewName(".layout.servers.manage.server");
        mv.addObject("server", server);
        mv.addObject("result", result);
        return mv;
    }

表单jsp

<form:form commandName="serverEditor" action="/admin/app/servers/manage/system/save">
<span class="tableRow">
    <label for="serverName">System Name</label>
    <form:input path="serverName" class="required" /><br />
</span>

<span class="tableRow">
    <form:errors cssClass="errors" path="serverName" />
    </span>

</form:form>

我知道验证正在工作,因为我逐步调试并看到绑定结果中的错误,但消息从未出现。

有人有什么想法吗?

【问题讨论】:

  • 你的&lt;form:form&gt;标签是什么样的?

标签: java model-view-controller spring spring-mvc validation


【解决方案1】:

尝试添加

@ModelAttribute("commandName"),

作为@PathVariable long serverId,之后的方法参数

你也可以发布更多你的jsp吗?

【讨论】:

  • 啊,我已经把它放在那里但是Form jsp和实际的jsp代码之间没有空行,所以它没有显示jsp的前半部分
  • 然后我添加了@ModelAttribute("systemEditor") 还是不行。
  • 您是在 POST 之后显示与在帖子之前相同的视图还是重定向到新页面?
  • 对此不确定,但我的表单操作属性始终为空字符串。注释映射始终根据 RequestMethod 类型和路径找到要调用的正确函数。还要确保您的错误类没有将样式设置为不可见或隐藏。这可能很明显,但仔细检查并没有什么坏处。
  • 我看到你正在为你的模型视图设置一个“mv”变量。我看不到您的代码中声明的位置。尝试只返回数据来源的 jsp 的字符串名称,看看是否出现错误。
【解决方案2】:

在您的示例代码中,您正在显示“systemName”的错误,而绑定的 bean 具有属性“serverName”...

【讨论】:

    【解决方案3】:

    原来我的问题是在类级别上声明了 ModelAndView,之前有人问过但我认为没有关联。这会阻止绑定结果正确插入到模型中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-23
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 2020-11-04
      • 2014-12-08
      • 1970-01-01
      相关资源
      最近更新 更多