一般数据库中的varchar类型能包含的字符长度是有上限的,而通过富文本编辑器输出的内容通常包含一堆HTML代码,也会占用字符数,当一篇文章很长时,很容易导致返回数据库异常,直接反应出来的是页面罢工了,很影响用户体验。所以一般做两处修改:1、限制编辑器的字数2、将数据库中保存该内容的字段的类型设置为CLOB
一、编辑器字数限制
我用的是KindEditor,基础配置请参看:【简单教程】js插件之kindeditor

在KindEditor的配置中添加,以下代码:

 afterChange : function() {
      $('.word_count1').html(this.count()); //字数统计包含HTML代码
      $('.word_count2').html(this.count('text'));  //字数统计包含纯文本、IMG、EMBED,不包含换行符,IMG和EMBED算一个文字
      var limitNum = 100;  //设定限制字数
      var pattern = '还可以输入' + limitNum + '字'; 
      $('.word_surplus').html(pattern); //输入显示
      if(this.count('text') > limitNum) {
       pattern = ('字数超过限制,请适当删除部分内容');
       //超过字数限制自动截取
       var strValue = editor.text();
       strValue = strValue.substring(0,limitNum);
       editor.text(strValue);      
       } else {
       //计算剩余字数
       var result = limitNum - this.count('text'); 
       pattern = '还可以输入' +  result + '字'; 
       }
       $('.word_surplus').html(pattern); //输入显示
      ////////
     } 
   });

在你要显示字数信息的位置加上:

您当前输入了 0 个文字。(字数统计包含HTML代码。) 您当前输入了 0 个文字。(字数统计包含纯文本、IMG、EMBED,不包含换行符,IMG和EMBED算一个文字。)

二、实体类设置

在@Column字段上加上columnDefinition = "CLOB",我这里是spring的后台,其他语言在相应的字段上加上字节限制即可。