В нашей среде Cocoon у нас есть несколько форм с текстовыми зонами. Как только пользователь отправляет форму, перед ее окончательной отправкой отображается обзор.
Поэтому данные каждого объекта формы хранятся в POJO.
Если пользователь находится на этой странице обзора и решает вернуться к форме, форма заполняется уже представленными данными, считанными из POJO. Однако при заполнении текстовой области данными из JavaObject некоторые разрывы строк и пробелы добавляются к данным.
Я проверил данные POJO для этих разрывов строк, но строка выглядит чистой. Каждый пробел, введенный пользователем, имеет символ 32, который является простым пробелом.
Я также проверил Serializer (мы используем пользовательский, который расширяет AbstractSerializer Cocoon), но здесь не было разрывов / пробелов, добавленных случайно.
При использовании Javascript для вывода текущего содержимого этого Textarea, однако, оно содержит символы переноса строки ('\ n'), а также вышеупомянутые дополнительные пробелы.
Мое подозрение заключается в том, что преобразование Space-Character в Java в символы HTML каким-то образом завершается неудачей.
Эти разрывы строк появляются вместо пробелов, а не внутри одного слова. Они также меняют положение в зависимости от размера текстовой области. Они не в конце строки, поэтому их нельзя принудительно обернуть или что-то еще.
Пример:
Пользовательский ввод "test test test test test" становится "test \ n [36x Space] test test test test"