问题描述: 表单中的textArea中有换行的内容,提交之后保存到数据库,再读取出来的时候,没有换行,全部连在一起了。
解决方法:
第一种:写一个类
public static String toHTMLString(String in) {
StringBuffer out = new StringBuffer();
for (int i = 0; in != null && i < in.length(); i++) {
char c = in.charAt(i);
if (c == '/ ' ')
out.append( "' ");
else if (c == '/ " ')
out.append( "" ");
else if (c == ' < ')
out.append( "< ");
else if (c == '> ')
out.append( "> ");
else if (c == '& ')
out.append( "& ");
else if (c == ' ')
out.append( " ");
else if (c == '/n ')
out.append( " <br> ");
else
out.append(c);
}
return out.toString();
}
那么在页面上调用这个类,如<%=toHTMLString(content)%> ,content是textarea的内容
如果你用了struts框架的话,这个类可以写成一个自定义的函数,直接用标签调用就解决了。
第二种:在数据存入数据库的时候就转换
content=content.replaceAll(" "," ");
content=content.replaceAll("/r/n","<br/>");
content=content.replaceAll("/n","<br/>");
然后在页面读取的时候,再转换过来
sc = 数据库中的content字段值 ;
sc=sc.replaceAll("<br/>","/r/n");
sc=sc.replaceAll("<br>","/r/n");
sc=sc.replaceAll(" "," ");