2015-09-06 132 views
1

我是Spring框架的新手。目前,我正在使用注释进行Spring验证。Spring MVC验证注释不显示错误消息

所以看我的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文件:从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控制器可以接收数据形成。但是在DAO类中添加的约束(@NotNull和@Size)不起作用,我不知道为什么。

+0

请更加关注非工作约束。一个例子会有所帮助。 –

回答

1

请更加关注非工作约束条件。一个例子 将有助于

也许你的bean的数据是有效的和用户名就是空字符串。我认为你使用Hibernate验证器,如果是的话尝试添加@NotEmpty约束到用户名字段