JSP中截取在线编辑器的字符串怎么处理.
我在公司写代码时遇到表字段中有html标签时.要是字符串截取出现开始标签与结束标签不全时,截取的内容也显示不出来.就是用了substring(begin,end)方法 
 各住高手有没有绝招..把标签用转义字符代替不知道行不行?
------解决方案--------------------看看是否能达到你的要求: 
   /** 
    * 按字节长度截取字符串(支持截取带HTML代码样式的字符串) 
    * @param param 将要截取的字符串参数 
    * @param length 截取的字节长度 
    * @param end 字符串末尾补上的字符串 
    * @return 返回截取后的字符串 
    */ 
   public String subStringHTML(String param,int length,String end) { 
     StringBuffer result = new StringBuffer(); 
     int n = 0; 
     char temp; 
     boolean isCode = false; //是不是HTML代码 
     boolean isHTML = false; //是不是HTML特殊字符,如  
     for (int i = 0; i  < param.length(); i++) { 
       temp = param.charAt(i); 
       if (temp ==  ' < ') { 
         isCode = true; 
       } 
       else if (temp ==  '& ') { 
         isHTML = true; 
       } 
       else if (temp ==  '>  ' && isCode) { 
         n = n - 1; 
         isCode = false; 
       } 
       else if (temp ==  '; ' && isHTML) { 
         isHTML = false; 
       }   
       if (!isCode && !isHTML) { 
         n = n + 1; 
         //UNICODE码字符占两个字节 
         if ( (temp +  " ").getBytes().length >  1) { 
           n = n + 1; 
         } 
       }   
       result.append(temp); 
       if (n > = length) { 
         break; 
       } 
     } 
     result.append(end); 
     //取出截取字符串中的HTML标记 
     String temp_result = result.toString().replaceAll( "(> )[^ <> ]*( <?) ",  "$1$2 "); 
     //去掉不需要结素标记的HTML标记 
     temp_result = temp_result.replaceAll( " </?(AREA|BASE|BASEFONT|BODY|BR|COL|COLGROUP|DD|DT|FRAME|HEAD|HR|HTML|IMG|INPUT|ISINDEX|LI|LINK|META|OPTION|P|PARAM|TBODY|TD|TFOOT|TH|THEAD|TR|area|base|basefont|body|br|col|colgroup|dd|dt|frame|head|hr|html|img|input|isindex|li|link|meta|option|p|param|tbody|td|tfoot|th|thead|tr)[^ <> ]*/?>  ", 
                                           " "); 
     //去掉成对的HTML标记 
     temp_result=temp_result.replaceAll( " <([a-zA-Z]+)[^ <> ]*> (.*?) </\\1>  ", "$2 "); 
     //用正则表达式取出标记 
     Pattern p = Pattern.compile( " <([a-zA-Z]+)[^ <> ]*>  "); 
     Matcher m = p.matcher(temp_result);   
     List endHTML = new ArrayList();   
     while (m.find()) { 
       endHTML.add(m.group(1)); 
     } 
     //补全不成对的HTML标记 
     for (int i = endHTML.size() - 1; i > = 0; i--) { 
       result.append( " </ "); 
       result.append(endHTML.get(i)); 
       result.append( ">  "); 
     }   
     return result.toString(); 
   }