1. 程式人生 > >ueditor和springmvc整合

ueditor和springmvc整合

前言:
  在web開發中, 富文字的編輯器真心很重要. 有電商店鋪的打理, 新聞稿/部落格文章/論壇帖子的編輯等等, 這種所見即所的編輯方式, 大大方便了非技術人員從事互利網相關的工作.
  因為手頭有個小專案, 正好涉及到這塊, 所以決心好好研究一番. 中間也在ckeditor和ueditor之間徘徊了很久, 後來聽聞大名鼎鼎的微信公眾號也使用了ueditor, 因此最後倒向了ueditor.
  本文將講解如何整合springmvc+ueditor的一些要點, 並做下簡單的展望.

ueditor簡介:
    UEditor是由百度web前端研發部開發所見即所得富文字web編輯器,具有輕量,可定製,注重使用者體驗等特點,開源基於MIT協議,允許自由使用和修改程式碼...
    ueditor的
官網地址
如下: http://ueditor.baidu.com/website/index.html.

  

    由於涉及到圖片上傳的部分, ueditor並非純javascript版本, 其出了php, java, asp等語言的支援版本.
    原始碼的下載連結: http://ueditor.baidu.com/website/download.html.

整合:
    ueditor的java版提供的是jsp版本的, 還附帶了多個java依賴包. 以下是它的目錄結構.

  

    配置檔案config.json, 定義了支援的上傳檔案/圖片的介面, 以及限制, 這個很重要.
    而當前的web開發, 往往都是基於maven來組織構建web工程的. 同時由於springmvc版本的框架限制. 還是得有一方進行妥協, 或者說是修改.
    在這個的前提下, 我們來進一步的地細化整合的工作.
    • 依賴包採用maven的方式來組織構建
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <!-- 上傳檔案的支援 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <
groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> <!-- org.json --> <!--JSON is a light-weight, language independent, data interchange format. See http://www.JSON.org/--> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20160212</version> </dependency>
    這樣就引入了檔案上傳, 以及json序列化/反序列化處理的依賴包, ueditor-x.x.x.jar後面介紹.
    • 資源訪問配置
    單獨把ueditor放入到webapp目錄下, 因此在springmvc對映處理中需要排除.
?
1 <mvc:resourcesmapping="/ueditor/**" location="/ueditor/" />
引入ueditor-x.x.x的原始碼
    其實作為依賴包引入也可以, 只是引入原始碼, 方便功能的修改和增強. 和前一種方法相比, 我更加推薦後者, 即引入原始碼.

  

新增controller處理類
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @Controller @RequestMapping("/ued") public class UEditorController { @RequestMapping(value="/config") publicvoid config(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 e) { e.printStackTrace(); } } }
    該controller類照搬了ueditor中原本的controller.jsp的處理程式碼, 並改成springmvc的那種模式. 注意這邊的處理ueditor操作的url path為: /ued/config. 它完成了編輯器初始化, 以及檔案/圖片的上傳處理.

  

配置config.json檔案
    config.json檔案, 是定義檔案/圖片上傳的介面, 以及各種限制(檔案大小上限, MimeType型別框定).
    具體配置的細節並不重要, 這邊最重要的是: 放在那裡, 以及如何被讀取到?
    放的位置問題, 可以自由點, 讓我們霸道一回, 就把config.json檔案放置到webapp/conf目錄下吧, ^_^.
    然後如何被讀取到呢? 原先ueditor的程式碼, 預設指定了請求的Context Path. 原因還是在jsp版本中, 預設controller.jsp和config.json是同目錄.
?
1 2 3 private String getConfigPath () { returnthis.parentPath + File.separator + ConfigManager.configFileName; }
    然而現狀已經發生變化了, 若不修改原始碼會導致找不到配置檔案config.json的錯誤. 因為尋找的路徑和和我們設定的webapp/conf有出路.
    在類ConfigManager修改後為:
?
1 2 3 4 5 private String getConfigPath () { returnthis.rootPath + File.separator +"conf" + File.separator + ConfigManager.configFileName; }
    這樣就可以了, 這也是為什麼, 我推薦使用原始碼引入的原因, 這也是唯一一處必須需要修改的地方.
    • 修改ueditor.config.js
    這也是最後一個步驟了, 我們需要制定編輯器訪問伺服器的初始地址.
?
1 2 3 4 5 6 7 8 9 10 window.UEDITOR_CONFIG = { //為編輯器例項新增一個路徑,這個不能被註釋 UEDITOR_HOME_URL: URL // 伺服器統一請求介面路徑 //      原先預設的 //, serverUrl: URL + "jsp/controller.jsp" //      修改後的 , serverUrl: "/ued/config"
    注: 修改serverUrl, 使得其指向自己的伺服器地址.
    這樣整個ueditor和springmvc的整合配置工作就做完了, ^_^. 感覺還是有點趕鴨子上架, 卻沒有具體講述原理.

驗證:
    驗證過程, 相對比較簡單一些.
    引入編輯框程式碼:
?
1 2 3 4 5 6 7 8 <script src="/ueditor/ueditor.config.js"></script> <script src="/ueditor/ueditor.all.min.js"></script> <script src="/ueditor/lang/zh-cn/zh-cn.js"></script> <script id="container"name="content" type="text/plain">這裡寫你的初始化內容</script> <script type="text/javascript"> var editor = UE.getEditor('container'); </script>
   初始化後, 編輯框如下:
   

   上傳圖片操作後, 編輯框如下:

   OK, 非常的成功.

後記:
    在查閱網上資料的時候, 也見過其他的整合方式的. 比如新增額外的servlet(path只匹配ueditor), 單獨處理ueditor的jsp. 這樣也能很好的做到整合, 也省心省力. 不過採用後者, 可以修改圖片上傳的模式, 比如放置到專門的圖片伺服器. 這也是服務做大的一個必經之路.
    後續有機會將講述下使用ueditor+圖片伺服器的修改思路, 以及ueditor的定製工作. 希望自己能努力, good good study, day day up.

相關推薦

ueditorspringmvc整合

前言:   在web開發中, 富文字的編輯器真心很重要. 有電商店鋪的打理, 新聞稿/部落格文章/論壇帖子的編輯等等, 這種所見即所的編輯方式, 大大方便了非技術人員從事互利網相關的工作.   因為手頭有個小專案, 正好涉及到這塊, 所以決心好好研究一番. 中間也在ckeditor和ueditor之間徘徊

Swagger2springMVC整合測試

inter encoding src mybatis project constrain aop servle efault 對Swagger寫個獨立的工程測試,方便後續進行工程的整合,這裏做一下記錄 1.pom.xml--依賴的的包 1 <project xm

03、Swagger2Springmvc整合詳細記錄(爬坑記錄)

component 效果 ges context tex ron 問題 package amp 時間 內容 備註 2018年6月18日 基本使用 spirngmvc整合swagger2 開始之前這個系列博文基本是,在項目的使用中一些模塊的內容記錄,但是

Java分散式跟蹤系統Zipkin(五):Brave原始碼分析-BraveSpringMVC整合

上一篇博文中,我們分析了Brave是如何在普通Web專案中使用的,這一篇博文我們繼續分析Brave和SpringMVC專案的整合方法及原理。 我們分兩個部分來介紹和SpringMVC的整合,及XML配置方式和Annotation註解方式 pom.xml新

springspringmvc整合案例

專案原始碼傳送門:http://download.csdn.net/download/six_666666/10037348 專案框架 原始碼分享 Spring.java package com; public interface Spring {       void

springmvcjson整合配置方法

repl bin blank converter htm spring配置 tpm port 三方 配置方法一 1、導入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar。 2、spri

SpringMvcMybatis整合總結

web images bean 技術 數據庫 tro control 自己 alt 1.先配置mybatis,測試讀取數據庫 2.自己測試數據 3.配置spring和springmvc, PS:配置web.xml,這樣就不用getBean了 4.配置Controlle

Spring+SpringMVC+MyBatis深入學習及搭建(十四)——SpringMVCMyBatis整合

文件拷貝 conf lips glib ide doc from ive body 轉載請註明出處:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面講到:Spring+SpringMVC+MyBatis深入學習及搭建(

Dubbo與Zookeeper、SpringMVC整合使用

描述 取出 有變 monit work 需要 可用 jqgrid png 互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,Dubbo是一個分布式服務框架,在這種情況下誕生的。現在核心業務抽取出來,作為獨立的服務,使

SpringMvc基礎知識(二) springmvcmybatis整合

internal 前端控制器 客戶 報錯 tca json轉換 註入 配置 iso 1 springmvc和mybatis整合 1.1 需求 使用springmvc和mybatis完成商品列表查詢。 1.2 整合思路 springmvc+mybaits的系統

SpringMVC系列(十五)Spring MVC與Spring整合時實例被創建兩次的解決方案以及Spring 的 IOC 容器 SpringMVC 的 IOC 容器的關系

問題 nbsp frame ota 展示 not als pri exc 一、Spring MVC與Spring整合時實例被創建兩次的解決方案 1.問題產生的原因 Spring MVC的配置文件和Spring的配置文件裏面都使用了掃描註解<context:compon

SpringMVC學習(四)——Spring、MyBatisSpringMVC整合

creat .com www. dispatch cte scanner scan fault framework 本文我再來講SpringMVC和MyBatis整合開發的方法,這樣的話,Spring、MyBatis和SpringMVC三大框架的整合開發我們就學會了。這裏我

spring、springmvcmybatis整合(java config方式)

ada vat req style face sat roo art 實體   之前項目中使用ssm框架大多是基於xml的方式,spring3.0以後就提供java config的模式來構建項目,並且也推薦使用這種方式,自從接觸過springboot後,深深感受到這種純ja

SpringMVC整合ShiroSwagger產生的路徑過濾問題

SSM整合Swagger和Shiro時出現的問題: 一:啟動swagger報錯Unable to infer base url. This is common when using dynamic servlet解決方法 在shiro配置檔案的自定義的過濾鏈中加上一下程式碼: <!-- swa

Quartz學習——SSMM(Spring+SpringMVC+Mybatis+Mysql)Quartz整合詳解(四)

當任何時候覺你得難受了,其實你的大腦是在進化,當任何時候你覺得輕鬆,其實都在使用以前的壞習慣。 通過前面的學習,你可能大致瞭解了Quartz,本篇博文為你開啟學習SSMM+Quartz的旅程!歡迎上車,開始美好的旅程! 本篇是在SSM框架——Spri

RabbitMQ與SpringMVC整合並實現傳送訊息接收訊息(持久化)方案二

   RabbitMQ的大約的介紹,上一篇已經有介紹了,這篇不介紹,直接描述RabbitMQ與SpringMVC整合並實現傳送訊息和接收訊息(持久化)。  使用了Spring-rabbit 傳送訊息和接收訊息,我們使用的Maven來管理Jar包,在Maven的pom.xml

【Java】SpringMVC整合mybatis 連線池c3p0druid分別實驗

1.pom.xmlSpring框架包 mybatis包 AOP包 aspectj包 aopalliance包<!-- mysql start --> <dependency> <groupId>mysql</groupId

Dubbo與Zookeeper、SpringMVC整合使用(負載均衡、容錯)

網際網路的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分散式服務架構以及流動計算架構勢在必行,Dubbo是一個分散式服務框架,在這種情況下誕生的。現在核心業務抽取出來,作為獨立的服務,使前端應用能更快速和穩定的響應。 第一:介紹Dubbo背景

springmvc整合jspfreemark兩個模板引擎

          加入freemark.jar包,在web-inf下面寫一個ftldpt-servlet.xml檔案,內容如下:          <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=

UEditor之——與SpringMVC整合

一、引言 相信大家做專案時,很多時候都會用到富文字編輯器。今天是2016年8月的最後一天,那麼就給大家帶來一篇關於JSP UEditor整合SpringMVC的文章吧,UEditor是百度的一款富文字編輯器產品,網址為:http://ueditor.baidu.com/w