我正在尝试使用JSP文件Spring,Tomcat,MS Access将表单详细信息输入到数据库中。我不应该使用Maven和JavaScript。
当我在使用JSP和servlet之前这样做时,使用正则表达式模式的HTML5模式功能在我的客户端验证中运行良好。至于例如,对于登录ID,
<input type="text" name="uid"
pattern="/^[A-Za-z0-9]+(?:[_][A-Za-z0-9]+)*$/" required>
工作得很好。 现在我正在学习spring并尝试使用表单标签,我正在做
<form:input type="text" path="uid" />
工作正常,但我需要客户端的模式验证器而不使用JavaScript。
现在每当我尝试添加模式功能时,就像
一样 <form:input type="text" name="uid"
pattern="/^[A-Za-z0-9]+(?:[_][A-Za-z0-9]+)*$/" required/>
报告错误:
type Exception report
message /UserForm.jsp (line: 18, column: 61) equal symbol expected
description The server encountered an internal error that prevented it from fulfilling this request.
我哪里错了? 我知道在将数据保存到数据库之前我必须实现验证器接口,我最终会得到它。截至目前,对此的任何帮助都非常感谢。
我是春天的新手,所以提供答案以及相同的解决方法/解决方案代码的解释将是非常友好的帮助。提前谢谢。
答案 0 :(得分:0)
对于JSP和Spring,您应该验证控制器类上的表单字段,并在表单上显示带有其他错误字段的错误:
<form:input path="user" id="userInput" />
<form:errors path="user" cssClass="error" />
在控制器类中,您验证字段,如果没有错误,您可以将数据保存到数据库,否则您在表单上显示错误。
@PostMapping("/saveUser")
public String saveUser(@ModelAttribute("user") @Validated User user,
BindingResult result, Model model) {
//custom validation
//validator.validate(user, result);
if (result.hasErrors()) {
//if any errors, return back to fill out the form again
return "userForm";
}
//save to DB and return success page
return "success";
}
验证可以是标准和\或自定义。互联网上有很多关于Spring验证的好教程。
答案 1 :(得分:0)
也许你必须改变
<form:input type="text" name="uid" pattern="/^[A-Za-z0-9]+(?:[_][A-Za-z0-9]+)*$/" required/>
到
<form:input type="text" name="uid" pattern="/^[A-Za-z0-9]+(?:[_][A-Za-z0-9]+)*$/" required="required"/>
将required
更改为required="required"