xdxxdx
www.xdxxdxxdx.com

  百度编辑器的运用可以参考我之前写的一篇文章,在java项目中加入百度富文本编辑器。这篇文章是以maven+spring mvc项目进行的,总得来说配置比较简单,但是如果是想在strus2项目中配置ueditor编辑器,需要注意以下细节。

  1.保证ueditor所需要的包都导入到了项目,如果是maven项目,参考上述文章,如果是普通项目,将ueditor/jsp/lib下的包放入web-inf的lib包中。

  2.在上传图片的时候,若提示“未找到上传文件”且其他地方配置无误,则需要做一下拦截器的配置。新建一个UeditorFilter,继承自struts2拦截器,代码如下。

package cn.wonyen.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;


public class UeditorFilter extends StrutsPrepareAndExecuteFilter {
    public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {  
        HttpServletRequest request = (HttpServletRequest) req;  
        //不过滤的url  
        String url = request.getRequestURI();  
//        System.out.println(url);  
        if (url.contains("/ueditor1_4_3/jsp/controller.jsp")) {  //注意路径
            chain.doFilter(req, res);  
        }else{  
            super.doFilter(req, res, chain);  
        }  
    } 

}

  并且,由于这个拦截器继承自StrutsPrepareAndExecuteFilter拦截器,所以原本的web.xml中的关于struts的拦截器都可以注释掉了,否则UeditorFilter 不会起到作用。注释掉的web.xml如下。

 <filter>
    <filter-name>ueditorFilter</filter-name>
    <filter-class>cn.wonyen.filter.UeditorFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>ueditorFilter</filter-name>
    <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>     
        <dispatcher>FORWARD</dispatcher> 
  </filter-mapping>
<!--   <filter> -->
<!--     <filter-name>struts2</filter-name> -->
<!--     <filter-class> -->
<!--           org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter -->
<!--       </filter-class> -->
<!--   </filter> -->
<!--   <filter-mapping> -->
<!--     <filter-name>struts2</filter-name> -->
<!--     <url-pattern>/*</url-pattern> -->
<!--   </filter-mapping> -->
<!--   <filter> -->
<!--     <filter-name>struts-prepare</filter-name> -->
<!--     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> -->
<!--   </filter> -->
<!--   <filter-mapping> -->
<!--     <filter-name>struts-prepare</filter-name> -->
<!--     <url-pattern>/*</url-pattern> -->
<!--   </filter-mapping> -->
<!--   <filter> -->
<!--     <filter-name>struts-execute</filter-name> -->
<!--     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> -->
<!--   </filter> -->
<!--   <filter-mapping> -->
<!--     <filter-name>struts-execute</filter-name> -->
<!--     <url-pattern>/*</url-pattern> -->
<!--   </filter-mapping> -->

 

  3.如果图片可以上传,但是上传完以后显示在页面上的是图片的名称,而不是回显图片本身,则是图片上传路径配置的错误。如下图所示。

 

 

  注意如下两个位置的配置。config.json下的imageUrlPrefix和imagePathFormat。这两个位置合起来构成图片的真实路径。(若是springmvc项目,两项可以合起来放在imagePathFormat项中配置。

imageUrlPrefix是前缀,我们填写项目名称就好,而imagePathFormat是图片的路径格式,可根据实际情况来填写。一般我们将图片放置于ueditor/jsp/upload/image文件夹下,并且按照时间的创建子文件夹。这两项配置好以后的代码如下:

 "imageUrlPrefix": "/wycrm/", /* 图片访问路径前缀 */
 "imagePathFormat": "/ueditor1_4_3/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

  经过以上的一些配置,一般来说图片就可以正常的上传和显示了。

  

 

posted on 2017-11-06 11:52  xdxxdx  阅读(170)  评论(0编辑  收藏  举报