SpringBoot整合UEditor

當前開發(fā)項目涉及到富文本框处面,了解了不少富文本編輯器之后,最終決定使用度娘的UEditor菩掏。原因:功能強大魂角,并且自帶適配java后端的圖片和視頻上傳。

項目地址

不多說智绸,上一下該項目的地址:http://ueditor.baidu.com/website/
簡書不支持markdown其他站點的外鏈很遺憾

整合過程

后端改造

因為項目使用的springboot框架野揪,而UEditor對于java后端的支持僅僅是給了一個jsp文件。因此瞧栗,需要對該文件進行一下處理斯稳,修改為面向springboot的統(tǒng)一controller。

@Controller
@Transactional
@RequestMapping("/static/common/ueditor/jsp")
public class JSPController {
    @RequestMapping("/controller")
    @ResponseBody
    public void getConfigInfo(HttpServletRequest request,HttpServletResponse response){
        response.setContentType("application/json");
        String rootPath = request.getSession().getServletContext()
                .getRealPath("/");
        try {
            String exec = new ActionEnter(request, rootPath).exec();
            PrintWriter writer = response.getWriter();
            writer.write(exec);
            writer.flush();
            writer.close();
        } catch (IOException | JSONException e) {
            e.printStackTrace();
        }
    }

如上所述迹恐,該項目即支持來自/static/common/ueditor/jsp/controller的上傳請求了挣惰。

前端請求

在前端添加UEditor支持。即:將整個uediotr包進行項目引入殴边,并且在使用該控件的地方進行js的導入憎茂。

  • 項目引入,我的對應代碼結構如下:


    代碼結構.png
  • 頁面引入锤岸,引入對應代碼如下:
    <script type="text/javascript" charset="utf-8" th:src="@{/static/common/ueditor/ueditor.config.js}"></script>
    <script type="text/javascript" charset="utf-8" th:src="@{/static/common/ueditor/ueditor.all.js}"></script>
  • 實例化UEditor編輯器即可竖幔,下面是我的初始化參數(shù),僅做參考是偷。
//實例化編輯器
    var ue = UE.getEditor(''+id,{
        toolbars: [
            [
                'fontfamily', //字體
                'fontsize', //字號
                'undo', //撤銷
                'redo', //重做
                '|',
                'emotion', //表情
                'forecolor', //字體顏色
                'backcolor', //背景色
                'bold', //加粗
                'underline', //下劃線
                'strikethrough', //刪除線
                '|',
                'justifyleft', //居左對齊
                'justifyright', //居右對齊
                'justifycenter', //居中對齊
                '|',
                'link', //超鏈接
                'unlink', //取消鏈接
                'simpleupload', //單圖上傳
                'insertimage', //多圖上傳
                //'music', //音樂
                //'insertvideo', //視頻
                'removeformat', //清除格式
                'formatmatch', //格式刷
                'source', //源代碼
            ]
        ],
        enableAutoSave:false,
        autoHeightEnabled: true,
        autoFloatEnabled: true,
        initialFrameWidth:width,
        initialFrameHeight:height,
        scaleEnabled:true//滾動條
    });

此時拳氢,訪問我們的頁面就會看到富文本框了募逞。
不過,此時會提示我們后臺配置文件出錯馋评,無法實現(xiàn)上傳功能

實現(xiàn)上傳功能

  • 修改config.js文件凡辱,對應的全局請求路徑。該請求是為了獲取config.json對應的配置數(shù)據(jù)栗恩⊥盖可以在Controller里面直接返回配置信息或者在controller里面進行json文件的讀取。我這里使用的是讀取配置文件的方式磕秤,使用UEditor自帶的方法乳乌,文章開頭已經實現(xiàn),這里貼一下需要修改的請求:


    image.png

完成以上配置之后市咆,再次加載UEditor的頁面汉操,其中上傳圖片的按鈕即可完成圖片的上傳了。
注意:如果開始調試模式蒙兰,加入斷點磷瘤,測試加載json串的時候。會出現(xiàn)超時錯誤搜变。暫時沒從配置文件里面找到配置字段采缚。所有,這里需要注意挠他,假如一切配置均無問題扳抽,但是依然返回后臺配置錯誤的話,可以把斷點全部取消掉試一試殖侵。

注意:上傳需要加入上傳組件贸呢,此處使用fileuoload

 <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>

使用servlet實現(xiàn)上傳

/**
 * 嘗試使用servlet來實現(xiàn)UEditor
 *
 * @author OnyWang
 * @create 2018-02-05 2:40
 **/
@WebServlet(name = "UEditorServlet", urlPatterns = "/static/common/ueditor/UEditor")
public class UEditorControllerServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding( "utf-8" );
        response.setHeader("Content-Type" , "text/html");
        PrintWriter out = response.getWriter();
        ServletContext application=this.getServletContext();
        String rootPath = application.getRealPath( "/" );

        String action = request.getParameter("action");
        String result = new ActionEnter( request, rootPath+"WEB-INF/classes" ).exec();
        if( action!=null &&
                (action.equals("listfile") || action.equals("listimage") ) ){
            rootPath = rootPath.replace("\\", "/");
            result = result.replaceAll(rootPath, "/");
        }
        out.write( result );
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
  • 采用servlet的方式,新建一個注解式的servlet即可拢军。
  • 需要在main方法里面加入@ServletComponentScan注解楞陷。
  • 修改ueditor默認訪問路徑。

注意:springboot下面茉唉,所有的資源文件都是放在classes下面的固蛾,所有,對于路徑的處理一定要加倍小心赌渣。放在增加路徑web-inf/classes

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末魏铅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子坚芜,更是在濱河造成了極大的恐慌,老刑警劉巖斜姥,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸿竖,死亡現(xiàn)場離奇詭異沧竟,居然都是意外死亡,警方通過查閱死者的電腦和手機缚忧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門悟泵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闪水,你說我怎么就攤上這事糕非。” “怎么了球榆?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵朽肥,是天一觀的道長。 經常有香客問我持钉,道長衡招,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任每强,我火速辦了婚禮始腾,結果婚禮上,老公的妹妹穿的比我還像新娘空执。我一直安慰自己浪箭,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布辨绊。 她就那樣靜靜地躺著山林,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邢羔。 梳的紋絲不亂的頭發(fā)上驼抹,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音拜鹤,去河邊找鬼框冀。 笑死,一個胖子當著我的面吹牛敏簿,可吹牛的內容都是我干的明也。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼惯裕,長吁一口氣:“原來是場噩夢啊……” “哼温数!你這毒婦竟也來了?” 一聲冷哼從身側響起蜻势,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤撑刺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后握玛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體够傍,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡甫菠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冕屯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寂诱。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖安聘,靈堂內的尸體忽然破棺而出痰洒,到底是詐尸還是另有隱情,我是刑警寧澤浴韭,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布丘喻,位于F島的核電站,受9級特大地震影響囱桨,放射性物質發(fā)生泄漏仓犬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一舍肠、第九天 我趴在偏房一處隱蔽的房頂上張望搀继。 院中可真熱鬧,春花似錦翠语、人聲如沸叽躯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽点骑。三九已至,卻和暖如春谍夭,著一層夾襖步出監(jiān)牢的瞬間黑滴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工紧索, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袁辈,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓珠漂,卻偏偏與公主長得像晚缩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子媳危,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理荞彼,服務發(fā)現(xiàn),斷路器待笑,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,803評論 6 342
  • 1鸣皂、下載Ueditor jsp版本 http://ueditor.baidu.com/website/downlo...
    LiKite閱讀 1,136評論 0 1
  • 我喜歡清晨的夢境 有你溫熱的手和我熱烈跳動的心臟 冬夜的月光 寂寥一座城池 輕吟一闕宋詞 等一場繁盛花事 一想起你...
    程杜閱讀 229評論 8 6
  • (太空倉)方寸斗室物俱備,電視音響集一處。潔白錦被芳幽靜签夭,探索易夢太空倉齐邦。自成格局自由在椎侠,逍遙散人夢生花第租。一覺睡到...
    甘朝武閱讀 246評論 0 0