JSF Renderer - Сохраняет закодированный вывод в строке для перемещения - PullRequest
0 голосов
/ 15 сентября 2011

Я хотел бы сохранить ответ, сгенерированный методом encodeAll () UIComponent, в строку, чтобы использовать содержимое где-то еще.

Я уже пытался настроить FacesContextWrapper, который предоставляет специальный ResponseWriter, который должен записывать содержимое в StringWriter, но он не работает. Кажется, мой ResponseWriter никогда не вызывается.

Я знаю, что есть другой способ и кодировать в нужном месте, и, вероятно, я сделаю это, но я все еще хотел бы знать, как это сделать. Особенно важно сжатие контента, между тегами и пробелами не должно быть пробелов, очень важно.

EDIT:

У меня есть некоторые фасеты, и их содержимое используется для передачи в javascript, поэтому мне нужно, чтобы визуализированное содержимое фасетов было сжато до одной строки. Сначала я попытался обернуть писателя, чтобы получить содержимое, затем сжать его сам и добавить его в javascript в качестве параметра, но это не сработало. Теперь я отображаю содержимое в нужном месте, но оно не сжимается в одну строку.

EDIT2:

Строки Javascript могут быть многопоточными, только если в конце строки используется "\ n \". Я не могу изменить содержимое, созданное методом encodeAll (), так что это действительно сложно. Мне действительно нужно будет захватить сгенерированный контент, а затем вручную сжать строку! Но как это сделать? Обертка ResponseWriter у меня не сработала.

РЕШЕНИЕ:

Я хотел бы поделиться своим решением с другими! ResponseWriter предлагает метод под названием cloneWithWriter(Writer w), которого я не знал. Используя этот метод с пользовательской реализацией StringWriter, вы можете захватить вывод в буфер и, наконец, использовать этот буфер в виде строки

...