下面是我的代码:
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String saveForm(@Valid Users users,Model model,Errors errors) {
if(errors.hasErrors()) {
return "registerPage";
}
else {
model.addAttribute("message","Registered................");
System.out.println("Save Users TEST------------------------------------>");
userRepository.save(users);
return "register-success";
}
}
这里有个例外:
对象“users”中字段“salary”上的字段错误:拒绝值[null];代码[NotNull.Users.Salary,NotNull.Salary,NotNull.java.lang.Integer,NotNull];参数[org.springframework.context.support.defaultmessageSourceResolvable:代码[users.salary,salary];参数[];default message[salary]];默认消息[不能为空]字段“dept”上对象“users”中的字段错误:拒绝值[];代码[size.users.dept,size.dept,size.java.lang.String,size];参数[org.springframework.context.support.defaultmessageSourceResolvable:代码[users.dept,dept];参数[];默认消息[dept],10,2];默认消息[长度应介于2到10之间]字段“name”上对象“users”中的字段错误:拒绝值[];代码[size.users.name,size.name,size.java.lang.String,size];参数[org.springframework.context.support.defaultmessageSourceResolvable:代码[users.name,name];参数[];default message[name],30,2];默认消息[长度应介于2到30之间]]
public class Users implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private Integer id;
@Column(name="name")
@NotNull
@Size(min=2,max=30,message="Length should be in between 2 to 30")
private String name;
@Column(name="salary")
@NotNull
private Integer salary;
@Column(name="dept")
@NotNull
@Size(min=2,max=10,message="Length should be in between 2 to 10")
private String dept;
....
}
下面是我的html表单(使用thymeleaf):
<h1 th:text="${message}" align="center"></h1>
<div class="container">
<h2>Registration form</h2>
<form class="form-horizontal" th:object="${registerCommand}" th:action="@{/rest/users/register}" method="post">
<div class="form-group">
<label for="name">Username:</label>
<input type="text"
class="form-control" id="name" placeholder="Enter Name"
name="name" th:field="*{name}"> <br />
<p th:if="${#fields.hasErrors('name')}" th:errors="*{name}" th:field="*{name}"
class="alert alert-danger"></p>
</div>
<div class="form-group">
<label for="dept">Department:</label>
<input type="text"
class="form-control" id="dept" placeholder="Enter Department"
name="dept" th:field="*{dept}"> <br />
<p th:if="${#fields.hasErrors('dept')}" th:errors="*{dept}" th:field="*{dept}"
class="alert alert-danger"></p>
</div>
<div class="form-group">
<label for="salary">Salary:</label> <input type="text"
class="form-control" id="salary" placeholder="Enter salary"
name="salary" th:field="*{salary}"> <br />
<p th:if="${#fields.hasErrors('salary')}" th:errors="*{salary}" th:field="*{salary}"
class="alert alert-danger"></p>
</div>
<button type="submit" class="btn btn-sucess">Submit</button>
</form>
</div>
找到了我的原因,我没有在我的saveForm控制器中传递正确的参数-
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String saveForm(@ModelAttribute("registerCommand") @Valid Users users, BindingResult bindingResult, Model model){
if(bindingResult.hasErrors()) {
return "registerPage";
}
else {
userRepository.save(users);
return "register-success";
}
}
注意-如果您使用的是BindingResult,它应该正好在bean之后。
只有在顺序重要的情况下才是BindingResult。它必须跟随正在验证的bean,以便Spring知道将任何验证错误放在哪里。
我正在测试带注释的javax验证。它们在应用程序中工作良好,方法参数上有注释。但是当我试图通过手动构建验证工厂来测试它们时 我得到以下错误。 javax。验证。ValidationException:HV000183:无法初始化“javax”。艾尔。“表达工厂”。检查类路径上是否有EL依赖项,或者改用ParameterMessageInterpolator 收到这个错误后,我在gradle文件中添
我正在测试一个具有预期异常的方法。我还需要验证在抛出异常后是否调用了一些清理代码(在模拟对象上),但看起来该验证被忽略了。这是代码。我正在使用 Junit 来验证预期的异常。 似乎完全被忽略了。无论我在中使用什么方法,我的测试都通过了,这不是我想要的。 你知道为什么会发生这种情况吗?
在dynamodb表上运行batchGetItem函数时获取ValidationException。我在密钥列表下同时提供哈希密钥和范围密钥。以下是请求和响应。 请求: 答复:
向addUser控制器提交表单时发生异常 获取窗体的控制器 为什么会出现此异常,输入无效电子邮件而不是验证必须执行。
从Weblogic 11c切换到Weblogic 12c后,我得到了这个异常: 我发现了有关这些主题的其他问题,但所有解决方案都是关于错误的库(Vaadin 7-Bean验证)。我认为我的Hibernate验证器与bean验证器库匹配。这就是我在WEB-INF/lib中的内容: 它会是由其他一些依赖引起的吗? EDIT我目前在我的weblogic应用程序中有这个。xml,一切正常:
我有一个使用JDK8开发的SpringBoot应用程序,现在已移植到JDK11。我在启动时遇到以下异常: 这是我的pom。xml: 我已经尝试了从2.1.8到2.2.1的SpringWebStarter,我总是得到相同的错误。 我无法再次使用JDK8,因为计算机已从Windows 7更新到Windows 10,并且我不愿意在Oracle注册以下载JDK8;) 有没有人遇到过这个问题,或者有人知道如