Невозможно повторно выполнить рендеринг (обновление) компонента с помощью ajax, если сам компонент не отображается в первую очередь. Компонент должен всегда отображаться перед тем, как ajax может повторно отобразить его. Ajax использует JavaScript document.getElementById()
, чтобы найти компонент, который необходимо обновить. Но если JSF не отобразил компонент на первом месте, то JavaScript не может найти что-либо для обновления.
Решение состоит в том, чтобы просто ссылаться на родительский компонент, который всегда отображается.
...
Хранилища Excel строка в буфере обмена с использованием кодировки символов Unicode. Причина, по которой вы получаете квадрат при попытке прочитать строку в ANSI, заключается в том, что этот символ не представлен в кодовой странице ANSI вашей системы. Вам следует просто использовать Unicode. Если вы собираетесь иметь дело с проблемами локализации, то ANSI - это больше проблем, чем оно того стоит.
Править: Джоэл Спольски написал отличное введение в кодировку символов, которое определенно стоит проверить: Абсолютный минимум. Каждый разработчик программного обеспечения должен абсолютно точно знать о Unicode и наборах символов (без оправданий!)
Ваша кодировка потока как UTF8 не работает. Байты для умляута преобразуются в символ Юникода «замещающий символ».
Вместо этого просто посмотрите на данные потока без каких-либо дополнительных инструкций по кодированию. Данные будут в некотором заданном формате, используемом Excel. Вы должны быть в состоянии определить, посмотрев на байт (ы), где находится unlaut. После этого вы сможете преобразовать его в UTF-8.
В худшем случае, если CSV Formatter выбрасывает все, что не является Ascii. В этом случае вы могли бы написать собственное средство форматирования данных.
В некоторых случаях разработчики Excel полагали, что CSV означает только Ascii. См. http://www.tech-archive.net/Archive/Excel/microsoft.public.excel.misc/2008-07/msg02270.html