簡體   English   中英

Spring MVC驗證注釋不顯示錯誤消息

[英]Spring MVC validation annotations not displaying error messages

我是Spring框架的新手。 目前,我正在使用注釋進行Spring驗證。

因此,請看我的DAO類:

public class Spitter {
    private Long id;

    @NotNull(message = "Username cannot be null")
    @Size(min = 10, max = 14, message = "Username must be between 10 and 14 characters long")
    private String username;
SETTERS AND GETTERS }

這是我的控制器:

@Controller
@RequestMapping("/spitters")
public class SpitterController {
    @RequestMapping(value = "/edit", method=RequestMethod.GET)
    public String createSpitterProfile(Model model) {
        model.addAttribute("spitter", new Spitter());
        return "spitters/edit";
    }

    @RequestMapping(value = "/edit/createAccount", method = RequestMethod.POST)
    public String addSpitterFromForm(Model model, @Valid @ModelAttribute("spitter")Spitter spitter, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return "spitters/edit";
        } else {
            //    spitterService.addSpitter(spitter);
            return "redirect:/home";
        }
    }
}

和JSP文件:

<%--suppress XmlDuplicatedId --%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
         pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Spitter</title>
</head>
<body>

<h2>Create free Spitter account</h2>
<sf:form action="/spitters/edit/createAccount"
         method="post" commandName="spitter">
  <table class="formtable">
    <tr>
      <td class="label">User Name</td>
      <td><sf:input class="control" name="username" path="username"
                    type="text"></sf:input></br>
        <sf:errors path="username"></sf:errors></td>
    </tr>
      <td class="label"></td>
      <td><input type="submit" value="Submit"></td>
    </tr>
  </table>

</sf:form>
</body>
</html>

但是,Spitter Controller可以從jsp形式接收數據。 但是在DAO類中添加的約束(@NotNull和@Size)不起作用,我也不知道為什么。

請更加注意非工作限制。 一個例子會有所幫助

也許您的bean數據有效,而用戶名只是空字符串。 我認為您使用的是Hibernate Validator,如果這樣,請嘗試將@NotEmpty約束添加到用戶名字段

我相信您需要注冊bean MethodValidationPostProcessor 參閱春季文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM