Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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/6/haskell/10.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
Java 处理primefaces textarea提交值中的换行符_Java_Jsf 2_Textarea_Primefaces_Line Breaks - Fatal编程技术网

Java 处理primefaces textarea提交值中的换行符

Java 处理primefaces textarea提交值中的换行符,java,jsf-2,textarea,primefaces,line-breaks,Java,Jsf 2,Textarea,Primefaces,Line Breaks,我有一个特别的地方。用户只需在其中输入多行并提交表单。在我的支持bean中,值在换行符处拆分。每一行都经过验证。从字符串中删除有效行,保留无效行,然后再次发送给用户 拆分代码: StringTokenizer tokens=new StringTokenizer(value,"\n\r"); 用无效行重新填充值: valueStrBldr.append(invalidLine).append("\n\r"); 问题是,当值重新加载到文本区域时,它会有很多不需要的换行符和空行。它是否必须与平台

我有一个特别的地方。用户只需在其中输入多行并提交表单。在我的支持bean中,值在换行符处拆分。每一行都经过验证。从字符串中删除有效行,保留无效行,然后再次发送给用户

拆分代码:

StringTokenizer tokens=new StringTokenizer(value,"\n\r");
用无效行重新填充值:

valueStrBldr.append(invalidLine).append("\n\r");
问题是,当值重新加载到文本区域时,它会有很多不需要的换行符和空行。它是否必须与平台相关的换行符有关


当我删除\r时,问题就解决了,但是值没有正确分割——我的意思是为什么不一致?

我认为应该是'\r\n'(颠倒顺序)。如果我没记错的话,\r是一行的结尾,\n是新行


无论如何,试着打印出输入的ascii码,然后查看它。尝试识别模式。这听起来像蛮力,但你会看到,在3-4行之后,你对正在发生的事情有了一个想法。

我认为应该是'\r\n'(颠倒顺序)。如果我没记错的话,\r是一行的结尾,\n是新行

无论如何,试着打印出输入的ascii码,然后查看它。尝试识别模式。这听起来很暴力,但你会发现在3-4行之后,你对正在发生的事情有了一个想法。

我建议用它来代替换行符上的行。这涵盖了所有可能的平台特定换行符,如
\r\n
\r
\n
,而无需担心(请注意
\n\r
不是有效的换行符序列)

写行时,我建议使用
\r\n
。它应该在所有客户端(WebBrowser)中都能正常工作

我建议改为使用换行符来阅读换行符上的行。这涵盖了所有可能的平台特定换行符,如
\r\n
\r
\n
,而无需担心(请注意
\n\r
不是有效的换行符序列)

写行时,我建议使用
\r\n
。它应该在所有客户端(WebBrowser)中都能正常工作

BufferedReader reader = new BufferedReader(new StringReader(value));
String line = null;

while ((line = reader.readLine()) != null) {
    // ...
}
valueStrBldr.append(invalidLine).append("\r\n");