转载  [JSP+Struts]文本内容的换行显示问题 收藏

 1、直接保存,然后当从数据库中取出来时用过滤方法过滤一遍再送回页面即可,给一段代码,看了就明白了,可以自己扩充
public static String filter(String value) {

        
if (value == null)
            
return (null);

        StringBuffer result 
= new StringBuffer();
        
for (int i = 0; i < value.length(); i++{
            
char ch = value.charAt(i);
            
if (ch == '<')
                result.append(
"&lt;");
            
else if (ch == '>')
                result.append(
"&gt;");
            
else if (ch == '&')
                result.append(
"&amp;");
            
else if (ch == '"')
                result.append(
"&quot;");
            
else if (ch == ' ')
                result.append(
"<BR>");
            
else if (ch == ' '{
                
if (i > 0 && value.charAt(i - 1== ' '{

                }
 else {
                    result.append(
"<BR>");
                }

            }
 else if (ch == ' ')
                result.append(
"&nbsp;&nbsp;&nbsp;&nbsp");
            
else if (ch == ' ')
                result.append(
"&nbsp;");
            
else
                result.append(ch);
        }

        
return (result.toString());
    }

2、在action中用replaceAll()把空格回车替换出来,
String content = content.replaceAll(“\r\n“,“<br>“);
String content = content.replaceAll(“  “,“&nbsp;“);
在jsp页面中,如果用<bean:write>则加上filter="false",
<bean:write name="info" property="content" filter="false"/>

3、利用样式表,在显示页面中放置一个“透明”的<textarea>,即边框颜色和文本框颜色都与背景颜色一致的文本框,然后将要显示的内容放置到该文本框中,这样不需要做任何处理,而且绝对和用户输入的格式一模一样,个人认为是最好的方法。当然,千万要记住把这个文本框设置成只读的啊,嘿嘿

PS: 第二种方法很好!推荐!!

发表于 @ 2006年12月30日 01:21:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:Hibernate操作视图实例 | 新一篇:html:link中的name,paramId,paramName和paramProperty四个属性的使用心得

  • 发表评论
  • 评论内容:
  •  
Copyright © mitkook
Powered by CSDN Blog