Я хотел бы сохранить ответ, сгенерированный методом encodeAll () UIComponent, в строку, чтобы использовать содержимое где-то еще.
Я уже пытался настроить FacesContextWrapper, который предоставляет специальный ResponseWriter, который должен записывать содержимое в StringWriter, но он не работает. Кажется, мой ResponseWriter никогда не вызывается.
Я знаю, что есть другой способ и кодировать в нужном месте, и, вероятно, я сделаю это, но я все еще хотел бы знать, как это сделать. Особенно важно сжатие контента, между тегами и пробелами не должно быть пробелов, очень важно.
EDIT:
У меня есть некоторые фасеты, и их содержимое используется для передачи в javascript, поэтому мне нужно, чтобы визуализированное содержимое фасетов было сжато до одной строки.
Сначала я попытался обернуть писателя, чтобы получить содержимое, затем сжать его сам и добавить его в javascript в качестве параметра, но это не сработало.
Теперь я отображаю содержимое в нужном месте, но оно не сжимается в одну строку.
EDIT2:
Строки Javascript могут быть многопоточными, только если в конце строки используется "\ n \". Я не могу изменить содержимое, созданное методом encodeAll (), так что это действительно сложно. Мне действительно нужно будет захватить сгенерированный контент, а затем вручную сжать строку! Но как это сделать? Обертка ResponseWriter у меня не сработала.
РЕШЕНИЕ:
Я хотел бы поделиться своим решением с другими!
ResponseWriter предлагает метод под названием cloneWithWriter(Writer w)
, которого я не знал. Используя этот метод с пользовательской реализацией StringWriter, вы можете захватить вывод в буфер и, наконец, использовать этот буфер в виде строки