gpt4 book ai didi

java - Hibernate 验证 没有验证

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:38 24 4
gpt4 key购买 nike

嗨,我正在遵循我发现的示例

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/

问题是我发布的个人资料中没有发现任何错误。我应该。为什么会发生这种事?

@Test
@Ignore
public void anotherTest() {
Profile profile = ProfileUtil.getProfile();

profile.setEmail("user@mail.com");
profile.setSex("dafjsgkkdsfa");
BindingResult bindingResult = new BeanPropertyBindingResult(profile, "profile");
userController.postUser(new ModelMap(), profile, bindingResult);

if (bindingResult.hasErrors()) {
System.out.println("errors");
}

assertTrue(bindingResult.hasErrors());

profileService.deleteProfile(profile);
}


@RequestMapping(value = "/", method = RequestMethod.POST)
public View postUser(ModelMap data, @Valid Profile profile, BindingResult bindingResult) {

if (bindingResult.hasErrors()) {
System.out.println("No errors");
return dummyDataView;
}

data.put(DummyDataView.DATA_TO_SEND, "users/user-1.json");
profileService.save(profile);
return dummyDataView;
}

编辑:这是个人资料。我现在正在测试性别,所以我想这才是重要的。

package no.tine.web.tinetips.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import no.tine.web.tinetips.util.CommonRegularExpressions;

import org.hibernate.validator.constraints.NotBlank;


@Entity
public class Profile {

@Id
@GeneratedValue
private Long id;

@NotNull(message = "profile.email.null")
@NotBlank(message = "profile.email.blank")
@Size(max = 60, message = "profile.email.maxlength")
@Pattern(regexp = CommonRegularExpressions.EMAIL, message = "profile.email.regex")
@Column(name = "Email", unique = true)
private String email;

@Pattern(regexp = "^[M|F]{1}$", message = "profile.sex.regex")
@Size(max = 1, message = "profile.sex.maxlength")
private String sex;


}

最佳答案

基本上,您使用 this.userController = new UserController() 实例化了一个 POJO,然后调用其方法 this.controller.postUser(...)。只是带有简单对象的简单 Java,与 Spring 和 Spring MVC 没有任何关系:不考虑 @Valid。

如果你想让它工作,你必须为你的测试类提供一些Spring信息,使用@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(...)。然后,对于 Spring MVC 部分,您必须通过一些 Spring MVC 工具模拟 Controller 上的请求调用。如果您使用 Spring MVC 3.0- 或 3.1+,则执行方式会有所不同。如需更多信息和实际代码,see this post and its answers ,例如。

关于java - Hibernate 验证 没有验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12602731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com