|
|
|
Сравнение двух полей формы Spring
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте! У меня такой вопрос. Как лучше сделать сравнение полей формы (пароли)? У меня есть класс Account, который соответствует таблице в бд. Собственно говоря, вся валидация задана здесь - при помощи аннотаций к полям. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. Добавляя в форму регистрации два инпута с одинаковым path = "password", я вижу, что по нажатию на submit пароль в бд записывается как значения этих инпутов через запятую. Т.е. если я в один инпут пишу 123, а в другой qwe, то пароль пользователя станет 123,qwe. Почему-то js функция (сравнивает по id) не срабатывает. И с вариантом написания своей аннотации дела плохи: не могу добавить новое поле, т.к. а таблице его нет. Пожалуйста, помогите! Буду рада любой подсказке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2016, 02:18 |
|
||
|
Сравнение двух полей формы Spring
|
|||
|---|---|---|---|
|
#18+
sklyanka, 1) Чтобы филд не попал в базу на него навешивают аннотацию @Transient, таким образом у вас будет одно поле password которое уйдет в базу, и confirm которое нужно только для валидации 2) Как сделать кросс валидацию полей тут два варианта, или реализовать ее вне класса Энтити(в контроллере, сервисе, дао ну где угодно в общем) или 2 - написать кастомный class-level валидатор, и повесить его на вашу энтити, детали можете посмотреть здесь - http://stackoverflow.com/questions/1972933/cross-field-validation-with-hibernate-validator-jsr-303 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2016, 02:36 |
|
||
|
Сравнение двух полей формы Spring
|
|||
|---|---|---|---|
|
#18+
Добрый День . 1) откажитесь от ентити на клиенте - не нужно их тянуть с формы клента в базу ... Для этого есть специально разработканная схема работы с формами Вам нужен pojo класс для полей формы . https://spring.io/guides/gs/validating-form-input/ далее в контроллере вы делаете валидацию всех полей Код: java 1. 2. 3. 4. 5. В Классе PersonForm Вы добавляете метод с аннотацией Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Этого вам должно хватить отдельный вопрос как перевести сообщение в @AssertTrue(message = "введенные пароли не совпадают !") для i18n под все локали ???? Если валидация значений с формы прошла - то вы переносите их в БД (парекладываете в ентити) Если нет - то нужно вернуться на форму и показать ошибки что где неверно ... для этого есть механизм RedirectAttributes redirectAttrs Код: java 1. 2. И Да - дополнительно валидируете форму на клиенте через jquery | bootstrap или что там у вас . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2016, 09:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39290691&tid=2123822]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 330ms |

| 0 / 0 |
