0

我想将 UIComponent 的 encodeAll() 方法生成的响应存储到一个字符串中,以便在其他地方使用该内容。

我已经尝试设置一个 FacesContextWrapper,它提供一个特殊的 ResponseWriter,它应该将内容写入 StringWriter,但它不起作用。似乎我的 ResponseWriter 从未被调用过。

我知道还有另一种方法并在正确的位置进行编码,可能我会这样做,但我仍然想知道如何做到这一点。尤其是内容的压缩,标签之间不能有空格,不能换行,非常重要。

编辑:

我有一些方面,这些方面的内容用于传递给 javascript,因此我需要将方面的渲染内容压缩为一行。首先,我尝试围绕作者获取内容,然后自己压缩并将其作为参数附加到 javascript,但它没有用。现在我在正确的地方渲染内容,但它没有被压缩成一行。

编辑2:

只有在行尾使用“\n\”时,Javascript 字符串才能多行。我无法更改 encodeAll() 方法产生的内容,所以这真的很难。我真的必须捕获生成的内容,然后手动压缩字符串!但是怎么做呢?ResponseWriter-wrapping 对我不起作用。

解决方案:

我想与其他人分享我的解决方案!ResponseWriter 提供了一种cloneWithWriter(Writer w)我不知道的方法。通过将此方法与自定义 StringWriter 实现一起使用,您可以在缓冲区中捕获输出并最终将该缓冲区用作字符串

4

0 回答 0