Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSF渲染器-以字符串形式存储编码输出,以便重新定位_Jsf_Components_Renderer - Fatal编程技术网

JSF渲染器-以字符串形式存储编码输出,以便重新定位

JSF渲染器-以字符串形式存储编码输出,以便重新定位,jsf,components,renderer,Jsf,Components,Renderer,我想将UIComponent的encodeAll方法生成的响应存储到一个字符串中,以便在其他地方使用该内容 我曾经尝试设置一个FacesContextWrapper,它提供了一个特殊的ResponseWriter,可以将内容写入StringWriter,但它不起作用。似乎我的回应者从未被呼叫过 我知道有另一种方式,在正确的地方编码,也许我会这样做,但我仍然想知道如何做到这一点。尤其是内容的压缩,标签之间不应有空格,也不应有换行符,这一点非常重要 编辑: 我有一些facet,这些facet的内容被

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

我曾经尝试设置一个FacesContextWrapper,它提供了一个特殊的ResponseWriter,可以将内容写入StringWriter,但它不起作用。似乎我的回应者从未被呼叫过

我知道有另一种方式,在正确的地方编码,也许我会这样做,但我仍然想知道如何做到这一点。尤其是内容的压缩,标签之间不应有空格,也不应有换行符,这一点非常重要

编辑:

我有一些facet,这些facet的内容被用来传递给javascript,因为我需要将facet的呈现内容压缩到一行。 首先,我试图绕过编写器来获取内容,然后自己压缩内容并将其作为参数附加到javascript中,但没有成功。 现在我在正确的位置渲染内容,但它没有压缩到一行

编辑2:

只有在行的末尾使用了\n\时,Javascript字符串才能多行。我无法更改encodeAll方法生成的内容,因此这非常困难。我真的需要捕获生成的内容,然后手动压缩字符串!但如何做到这一点呢?回答:作者包装对我不起作用

解决方案:

我想与其他人分享我的解决方案!
ResponseWriter提供了一个名为cloneWithWriterWriter w的方法,我不知道这个方法。通过在自定义StringWriter实现中使用此方法,您可以在缓冲区中捕获输出,并最终将该缓冲区用作glassfish 3.1.1So上的字符串

Mojarra 2.1.1,具体的功能要求是从整个响应中删除所有不必要的空白?但是我不理解在其他地方使用内容的要求。有没有其他方法让JS可以使用数据,而不需要将数据放在一行上?你能给出一个刻面输出的例子,以及JS应该如何使用它吗?刻面可以有任何标记作为内容,如简单文本、输出文本、面板组等。当我用撇号传递生成的内容,并且内容有换行符时,会导致错误。