【发布时间】:2014-08-25 19:57:28
【问题描述】:
我是 Spring MVC 的新手。我正在尝试一个简单的应用程序来验证表单值。我使用 Spring BindingResult 和 JSR303 进行字段验证。但由于某种原因,验证错误不会出现在错误标签中。事实上,绑定结果并没有返回任何错误。
我的豆子如下:
package com.app.ebl.bean.login;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class LoginBean {
@NotNull(message = "User Name field can not be blank")
@Size(max = 10, message = "User Name should not be more than 10 characters")
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我的控制器类如下所示,
package com.app.ebl.controller.login;
import javax.validation.Valid;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.app.ebl.bean.login.LoginBean;
@Controller
public class LoginController {
private static final Log log = LogFactory.getLog(LoginController.class);
@RequestMapping(value="/login", method=RequestMethod.GET)
public String toLogin(Model model)
{
model.addAttribute("login",new LoginBean());
return "login";
}
@RequestMapping(value="/authenticate", method=RequestMethod.POST)
public String authenticate(@ModelAttribute(value = "login") @Valid LoginBean login,
BindingResult bindingResult, Model model)
{
if(bindingResult.hasErrors()) {
return "login";
}
model.addAttribute("userName",login.getUserName());
return "home";
}
}
现在如果我在用户名字段中没有提供任何值,系统不会验证相同的值,并允许我进入下一个视图。
谁能帮帮我。 提前致谢,
【问题讨论】:
-
您的代码看起来不错。您是否在项目中添加了
hibernate-validation.jar(不仅仅是validation-api.jar)? -
如果将
@Size替换为@Length(或@NotEmpty/@NotBlank)会起作用吗? -
我已经添加了validation-api的依赖。但是每当我尝试添加以下内容时,
Eclipse 是向我显示错误“缺少工件 org.hibernate:hibernate-validator:jar:5.1.1.Final”org.hibernate hibernate-validator 5.1.1.Final
标签: java spring validation spring-mvc