在一个textarea中输入一段文字,保存到数据库后再到页面上取出来显示时,就无法显示换行了。 

解决方案 »

  1.   

    easy,还使用一样大小的Textarea去显示这个字段的内容就可以了,你可以通过样式把这个TextArea设置成好像没有一样(没有试过)
      

  2.   

    因为textarea换行为"/n"
    而页面显示换行为"<br/>"
    在后台转换下
    碰到 "/n"转换为 "<br/>"给你个全点的过滤文本代码
    public static String tranStr(String oldStr) {
    int k = oldStr.indexOf(String.valueOf(("  ")));
    while (k >= 0){
    oldStr =
    oldStr.substring(0, k)
    + "&nbsp;&nbsp;"
    + oldStr.substring(k + 2, oldStr.length());
    k = oldStr.indexOf(String.valueOf("  "));
    } int i = oldStr.indexOf(String.valueOf((char) 13));//这里就是"/n"
    while (i > 0) {
    oldStr =
    oldStr.substring(0, i)
    + "<br>"
    + oldStr.substring(i + 1, oldStr.length());
    i = oldStr.indexOf(String.valueOf((char) 13));
    }
    int j = oldStr.indexOf(String.valueOf((char) 10));
    while (j > 0) {
    oldStr =
    oldStr.substring(0, j)
    + ""
    + oldStr.substring(j + 1, oldStr.length());
    j = oldStr.indexOf(String.valueOf((char) 10));
    }
    return oldStr;
    }
      

  3.   

    保存前,textarea值的回车进行替换,回显再替换回来。
      

  4.   

    可以使用下面二个函数
    //存入数据库
    public class Opera { public static String OperationChar(String message) {
      if (message == null) {
       return null;
      }
      char content[] = new char[message.length()];
      message.getChars(0, message.length(), content, 0);
      StringBuffer result = new StringBuffer(content.length + 50);
      for (int i = 0; i < content.length; i++) {
       switch (content[i]) {
       case '<':
         result.append("&lt;");
         break;
       case '>':
         result.append("&gt;");
         break;
       case '&':
         result.append("&amp;");
         break;
       case '"':
         result.append("&quot;");
         break;
       case ' ':
                      result.append("&nbsp;");
             break;
       case '\n':
         result.append("<br/>");
         break;
       default :
            result.append(content[i]);
       }
      }
      return result.toString();
     }
     
     //显示在页面的时候
     public static  String DEOperationChar(String message) {
      if(message ==null) {
       return null;
      }
      StringBuffer result = new StringBuffer();
      message.replaceAll("&lt;", "<");
      message.replaceAll("%gt;", ">");
      message.replaceAll("&amp;", "&");
      message.replaceAll("&quot;", "\"");
      message.replaceAll("&nbsp;", " ");
      
      
      return message;
     }
     }
      

  5.   

    继续想办法,以上方法都没用,我是在一个td里面显示出来,不用什么input之类的显示。
      

  6.   

    因为当我输入一个连续字符时,显示才不会换行,我用的是css中style等于word-work:wrap,overflow:hidden,在ie中有效,可是在ff中无效,望指教。
      

  7.   

    兩種方式:
    1.<TEXTAREA WRAP="hard">~<TEXTAREA>  傳送換行資料
    2.把頁面的textarea元件的行列及換行方式設好,資料從資料庫取出後在既定的字串長度位置加入換行符就可以了
      

  8.   

    第二种方法能给个代码demo吗?
      

  9.   

    <code>
    <td valign="top" width="120" style="word-wrap:break-word; overflow:hidden;"><span class="osusume_txt"><%=hm.get("NOTE").toString()%>...</span></td>
    </code>
    这是我显示从textarea中内容的代码。我就是要在这控制换行,请教。
      

  10.   

    textarea里换行字符:
    <textarea>你跟我换行不?&#13;&#10;换行了。</textarea>
      

  11.   

    怎么可能没用呢我以前就这样用的。。
    调用下tranStr这个方法。。
    String str=tranStr(str);
    返回到页面