在java項目中加入百度富文本編輯器


 

富文本編輯器在項目中很常見,他可以將文本,圖片等信息存入數據庫,在編輯一些圖文混排的信息的時候很有用,比如商城項目的商品詳情頁,包含很多帶有樣式的文字和圖片。

此前一直使用的百度的富文本編輯器ueditor。

直接說怎么用。

1.首先去下載安裝包,把它放在webapp下面,如下所示。至於如何下載,可自行百度。

 

2.maven項目的話需要在pom.xml中加入如下語句,以導入所需要的包。

    <!-- 百度富文本 -->
        <dependency>
            <groupId>com.github.qiuxiaoj</groupId>
            <artifactId>ueditor</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20170516</version>
        </dependency>

如果不是maven項目則將安裝包中jsp下的lib下的jar包拷入項目的lib下即可。

3.在頁面中引入相關的js文件。

<!-- 百度編輯器 -->
<script type="text/javascript" charset="utf-8" src="./ueditor1_4_3/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="./ueditor1_4_3/ueditor.all.js"></script>
<script type="text/javascript" charset="utf-8" src="./ueditor1_4_3/lang/zh-cn/zh-cn.js">

4.配置ueditor的相關文件,首先配置ueditor.config.js這個文件,主要是為了能讓上傳圖片等功能生效,才需要配置這個文件。

我截圖了一部分,主要是注意截圖這兩個地方的配置,相信看了我的項目結構,大家都明白是怎么回事了。HOME_URL即是項目根目錄+編輯器所在的根目錄,serverUrl為HOME_URL下去尋找controller.jsp這個文件,此文件就相當於ueditor的一個controller,我們后台所要進行的所有操作,比如上傳文件等,都是通過訪問這個controller來實現的,所以一定要配置正確。

接下來是配置config.json這個文件,我主要是配置了圖片上傳的路徑。如下所示。

配置完以上兩項后,在瀏覽器中鍵入如下地址來驗證配置是否正確。

http://localhost:8080/warrior/ueditor1_4_3/jsp/controller.jsp?action=config

大概意思就是訪問controller.jsp中action=config這個方法吧,這是ueditor封裝好的后台代碼,我們也看不到。如果配置成功,你會看到如下的返回值。

大概的意思就是顯示出了配置項的內容。如果你看到的不是上述內容,說明配置有誤。

5.頁面編寫,以下頁面是產品的編輯頁,它把之前錄入的內容回顯,然后修改以后,再重新提交。我們只看與編輯器相關的部分。

首先是表單,代碼如下。

    <tr>
                                <th>description:</th>
                                <td>
                                    <div id="dpeditor1" type="text/plain" name="description" style="width: 800px; height: 400px;"></div>
                                </td>
                            </tr>
                            <tr>
                                <th>Available In:</th>
                                <td>
                                    <div id="dpeditor2" type="text/plain" name="surface" style="width: 800px; height: 400px;"></div>
                                </td>
                            </tr>

然后是配置ueditor的工具欄並且賦值給表單,並且在加載完成后回顯。

<script type="text/javascript">
    
    var ue_param = {//工具欄配置項
 toolbars : [ [ 'cleardoc', 'selectall', '|', 'undo', 'redo', '|', 'bold', 'italic', 'underline', 'strikethrough', 'fontsize', 'forecolor', 'fontfamily', 'link', '|', 'justifyleft', 'justifycenter', 'justifyright', '|', 'horizontal', 'pasteplain', '|', '|', 'removeformat', '|', 'charts','|','simpleupload' ] ], autoHeightEnabled : false, autoFloatEnabled : false, elementPathEnabled : false, relativePath : true, pasteplain : true, saveInterval : 60 * 60 * 24, wordCount : false, } var ue1 = UE.getEditor('dpeditor1', ue_param); ue1.ready(function() { var temp = $('.temp_n1').html(); ue1.setContent(temp);//回顯
 }); var ue2 = UE.getEditor('dpeditor2', ue_param); ue2.ready(function() { var temp = $('.temp_n2').html(); ue2.setContent(temp);//回顯
 }); </script>

代碼很簡潔,需要注意的是回顯我借助了兩個臨時表單,temp_n1和temp_n2,因為這邊有兩個富文本編輯器。

<div class="temp_n1" style="display: none"> ${product.description}</div>
        <div class="temp_n2" style="display: none">${product.surface}</div>

6.我們來看看效果。

 

 

 這樣就完成了ueditor配置,也能保證基本的圖片上傳功能。

PS:有時候我們部署項目的時候,是不希望顯示項目名稱的,我們希望直接訪問域名即可,如本例中我們不希望顯示warrior這個項目名,這時候ueditor圖片上傳的配置需要做相應的更改。

比如說對tomcat項目而言,我把war包解壓后直接放入root文件夾下,此時就相當於不需要訪問項目名warrior,直接訪問http://192.168.1.185:8080/admin這樣就可以進入到系統,而這時我們發現富文本編輯器的上傳圖片功能失效了。什么原因呢?

這是因為我們之前配置的ueditor.config.js和config.json路徑是有項目名稱的,而現在沒有項目名稱了,程序自然找不到。把這兩個地方的項目名稱去掉即可,如圖。

 

 這樣就可以了。

PSS:如果有做負載均衡,希望從編輯器上傳的圖片都傳到一個tomcat項目下以確保圖片信息同步,則需在nginx的配置文件中添加如下配置項,這樣,圖片就都可以上傳到http://xdxfile.com這個代理所在的服務上。

    location ~ ^/ueditor1_4_3{
            proxy_pass http://xdxfile.com;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM