|
|
|
Странное поведение @InitBinder-а
|
|||
|---|---|---|---|
|
#18+
Жил-поживал в @InitBinder-е контроллера Спринга кастомный эдитор StringTrimmerEditor. Задача его очевидно угадывается по названию класса - отсекать пред- и пост-пробелы в строковых данных, приходящих в реквесте. И вот столкнулись мы с проблемой, когда массив длиной более 256 элементов, приходящий в реквесте, перестал байндиться на объект модели типа List, кидая IndexOutOfBoundsException.. Проблема нечастая, но оказывается Гугль знает и про нее ! Очевидный же шаг, не так ли - добавить этот кастомный параметр в @InitBinder: Код: java 1. 2. 3. 4. 5. Но... Не работает! Выношу установку параметра в отдельный метод, объявленный с аннотацией @InitBinder: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Спринг это допускает, но опять не работает.. И, наконец, в процессе проб всего и вся, удалений, замены типа binder-а в параметре метода, так как-то случайно получилось, что я переставил местами эти методы, и КОД ЗАРАБОТАЛ!!! О_о То есть буквально вот так, в таком порядке следования методов в классе: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. - работает, а наоборот (код выше) - не работает. Попробовал и в одном методе.. Как в самом первом куске кода в этом сообщении - не работает, а строки кода в методе местами поменяешь - работает. Что это?? Баг Спринга или я что-то не понимаю, не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 18:10:58 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=268&tid=2130938]: |
0ms |
get settings: |
16ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
56ms |
get topic data: |
24ms |
get forum data: |
6ms |
get page messages: |
71ms |
get tp. blocked users: |
3ms |
| others: | 325ms |
| total: | 535ms |

| 0 / 0 |
