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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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重新显示h:InputExtArea中用户控制的输入,以保留换行符?_Jsf_Jsf 2_Richfaces - Fatal编程技术网

如何使用JSF重新显示h:InputExtArea中用户控制的输入,以保留换行符?

如何使用JSF重新显示h:InputExtArea中用户控制的输入,以保留换行符?,jsf,jsf-2,richfaces,Jsf,Jsf 2,Richfaces,通过谷歌搜索,我发现JSF通常会在默认情况下通过任何组件清理显示期间的所有用户输入,我看到的最佳选项是通过显式禁用转义的h:outputText显示用户输入,如下所示: <h:outputText value="#{bean.userInput}" escape="false" /> …但这让我有了另一种依赖,编写自己的HTML转义函数可能只会打开潘多拉的输出框 那么,有没有一种“最佳实践”的干净而可靠的JSF方法来完成这个看似简单而常见的用例呢 (如果有帮助的话,我也已经在使用R

通过谷歌搜索,我发现JSF通常会在默认情况下通过任何组件清理显示期间的所有用户输入,我看到的最佳选项是通过显式禁用转义的
h:outputText
显示用户输入,如下所示:

<h:outputText value="#{bean.userInput}" escape="false" />
…但这让我有了另一种依赖,编写自己的HTML转义函数可能只会打开潘多拉的输出框

那么,有没有一种“最佳实践”的干净而可靠的JSF方法来完成这个看似简单而常见的用例呢

(如果有帮助的话,我也已经在使用RichFaces了)


编辑:明显的重复不是一个,因为它还引入了另一个依赖项,并忽略了我的核心问题:是否有一种方法可以保留换行符,而不必自己进行转义,也不必首先用literal

标记自己。只是保留换行符


编辑2:评论中的链接充分回答了问题。

由于您似乎更担心换行符而不是消毒,以下是其他重复:我已经看到了编辑。对我来说还是个骗局。正如BalusC所说,这可能是您想要的,但这只是基本的CSS,与JSF或任何其他web框架无关。您可以始终使用
。换行符被保留了,浏览器会忽略它们。谢谢各位,这是真的
myBean.setUserInput(StringEscapeUtils.escapeHtml(userInput)
    .replaceAll("(\r\n|\r|\n|\n\r)", "<br />"));