В предыдущей статье я представил подробное объяснение IOC Spring Learning Notes 1 и пытаюсь максимально использовать аннотации и код Java. Затем эта статья посвящена представлению проверки данных Form Data 2 и примеров загрузки файлов. Для получения подробной информации, пожалуйста, обратитесь к этой статье!
1. Форма проверки данных
При регистрации пользователи должны заполнить свою учетную запись, пароль, электронную почту и номер мобильного телефона, которые требуются и должны соответствовать определенным форматам. Например, учетная запись должна быть менее 32 цифр, электронная почта должна соответствовать формату электронной почты, а номер мобильного телефона должен быть 11 -значным номером и т. Д. Вы можете использовать информацию о проверке во время регистрации или написать класс инструмента специально для проверки; Давайте посмотрим, как реализовать проверку данных формы с помощью простых аннотаций в SpringMVC.
В рамках пакета javax.validation.constraints определяются несколько аннотаций. например:
@Notnull: значение аннотированного элемента не должно быть нулевым. ПРИМЕЧАНИЕ. Если вы не заполняете какие -либо данные в форме, это не означает, что они нулевы, а пустая строка.
@Size: аннотированный элемент должен быть строкой, коллекцией или массивом, и длина должна соответствовать данному диапазону.
@Past: значение аннотированного элемента должно быть прошлым.
@Digits: аннотированный элемент должен быть числом, а его значение должно иметь указанное количество цифр.
@Pattern: значение аннотированного элемента должно соответствовать данному регулярному выражению
Кроме того, больше аннотаций определяется в рамках пакета org.hibernate.validator.constraints. например:
@Email: совместный формат электронной почты.
@URL: Сопоставьте формат URL.
Давайте посмотрим, как использовать его в Springmvc.
1. Сначала загрузите необходимый в файле pom.xml
<depervice> <groupid> javax.validation </groupid> <artifactid> validation-api </artifactid> <sersive> 1.1.0.final </version> </depervice> <dehydency> <groupid> org.hibernate </groupid> <strifactid> hibernate-validator </artifactid>
Следует отметить, что javax.validation только определяет API проверки, и должна быть добавлена реализация API, например, org.hibernate.validator, в противном случае будет сообщена ошибка.
2. Добавьте аннотации в свойства класса, взяв user.java в качестве примера.
Пользователь открытого класса реализует serializable {@size (min = 32, max = 32, message = "uuid должен быть 32-разрядной строкой") частной строки; @size (min = 1, max = 32, message = "Длина учетной записи должна быть между 1-32-разрядным") приватной строкой username; @notempty (сообщение = "Password не может быть пустым") Private String; пусто ")@Email (message =" Электронная почта не может быть пустой ") частная строка Электронная почта; @Size (min = 11, max = 11, message =" Длина мобильного номера телефона составляет 11 цифр ") частное строковое мобильное телефон;} Сообщение: если проверка данных формы не удается, можно отобразить сообщение об ошибке.
3. Примените функцию проверки в UserController и добавьте аннотацию @Valid.
Возьмите usercontroller.java в качестве примера:
@Controller@requestMapping ("/user") открытый класс usercontroller {private userservice userservice; @autowiredpublic usercontroller (userservice userservice) {this.userservice = userservice;}@requestmapp Объект применяет функцию проверки if (errors.haserrors ()) {// Если проверка формы не выполняется, верните на страницу регистрации «Регистр»;} if (user.getid () == "") user.setid (uuid.randomuuid (). tostring (). replaceall ("-", ",", ",", ",", ","); if user.gretate (). Date (). Gettime ()); userservice.adduser (user); redirect:/user/" + user.getusername ();}} 4. Напишите файл JSP и отобразите страницу, принимая register.jsp в качестве примера:
<%@ page contentype = "text/html; charset = utf-8" language = "java"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "sf" uri = "http://www.springframework.org/tags/form" %> < %@ page session = "false" %> <html lang = "en"> <Head> </title> </title> <link rel = "stylesheet" type = "text/css" href = "<C: url value ="/sticle. >/head> <body> <sf: form method = "post" action = "/regist/user/regist" CommandMAme = "User"> <%-если проверка данных формы не удается, отображается сообщение об ошибке-%> <sf: ошибки path = "*" element = "div" cssclass = "ошибки"/> <br/> <table align = "> <trd> <td> usermeme ="/> <br/> <table align = " </td> <td> <sf: input path = "username" csserrorclass = "ошибки"/> </td> <tr> <td> пароль: </td> <td> <sf: password path = "password" csserrorclass = "ошибки"/> </td> </tr> <td> <td> <td> path = "email" csserrorclass = "ошибки"/> </td> </tr> <tr> <td> мобильный телефон: </td> <td> <sf: input path = "comblone" csserrorclass = "ошибки"/> </td> </tr> </table> <br/> <input type = ". value = "Register"/> </sf: form> </body> </html>
Окончательный эффект заключается в следующем:
2. Загрузка файла
Весной загрузка файлов проста и делает только 3 шага.
1. Если Disprartcherservlet мы настраиваем наследие AbstractAnnotationConfigDispatcherServletinitializer, перегружайте метод cumentizereGistration () для настройки конкретных деталей Multipart.
@OverrideProtected void CamentizereGistration (ServletRegistration.Dynamic Регистрация) {// Ограничение загруженного размера файла не более 2 МБ, весь запрос не превышает 4M, и все загруженные файлы должны быть записаны в Disk Registration.SetMultiPartConfig (New MultipArtCIGELEMENT ("/TMP/uploads", 2071, 41, 41, 41, 207, 41, 207, 41, 41, 4, 47, 4, 47, 47, 4, 47, 47, 41, 41, а, "/tmp/uploads", 207333304, 41, 4, 41, 41, 414, 4, 414, 41, 4, 414, 4, 414, 414. 0));} 2. Настройте многочисленное анализатор.
// Настройка Multipart Resolver @BeanPublic MultipartResolver MultipRERSOLVER () бросает ioException {return new new StarndsersVletMultiparTresolver ();} 3. Процесс Multipart запрос. Для получения информации, такой как файлы, загруженные пользователями, вы можете использовать массив Byte [] для представления его, но рекомендуется рекомендовать многократный интерфейс, предоставляемый Spring. Он предоставляет больше функций, таких как получение имени файла, размер файла, тип файла и т. Д.
@RequestMapping(value = "/{username}", method = RequestMethod.POST)public String showUserInfo(@RequestPart("icon") MultipartFile icon) throws IOException {icon.transferTo(new File("/Users/pingping/Projects/IdeaProjects/spring/register/src/main/webapp/uploads/" + icon.getoriginalfilename ())); return "user";} Метод Transfortto (file dest): записать файлы в систему.
Запишите тест на странице, чтобы увидеть, был ли файл в указанном каталоге файлов успешно загружен.
<form method = "post" ectype = "multipart/form-data"> <babel> загрузить изображение аватара?
1. Ссылки: Практическая практика весна (4 -е издание).
2. Адрес GitHub: https://github.com/everseeker0307/register.
Выше приведено пример проверки данных формы и пример загрузки файлов код пружинного обучения 2, представленные вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!