最近写毕业设计项目用到了百度编辑器,之前ss其实就有用过,当时简单的配置一下后端的配置文件就Ok了,但是这次项目用的SSM 框架,遇到的各种问题让我真的怀疑人生。。。 不多说,就为自己这两天掉的头发在这里整理一下使用过程。
为了对应自己的路径,我把自己项目的目录结构贴一下
一、准备工作
1、下载Ueditor jsp版 官方包,解压之后目录结构如下
2、下面需要修改源码,所以需要下载完整版的源码包 ,解压后将里面的目录全部复制到项目src下
二、自己写一个controller,这个主要是代替ueditor/jsp/controller.jsp,不懂这个是用来干嘛的没关系,先这样写一个就好了(注意下面代码的RequestMapping后面的路径,后面需要用到)
package com.kjxy.controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baidu.ueditor.ActionEnter;
import com.baidu.ueditor.ConfigManager;
@Controller
@RequestMapping("/ued")
public class UeditorController {
@RequestMapping("/config")
public void ueditorConfig(HttpServletRequest request, HttpServletResponse response) {
System.out.println("edite 经过的request");
response.setContentType("application/json");
response.setHeader("ContentType", "text/html");
String rootPath = request.getSession().getServletContext().getRealPath("/");
try { request.setCharacterEncoding( "utf-8" );
String exec = new ActionEnter(request, rootPath).exec();
PrintWriter writer = response.getWriter();
writer.write(exec);
writer.flush();
writer.close();
}
catch (IOException e) {
System.out.println("edite 经过的request出错..");
}
}
}
注意:这个cotroller里面有一个重要的对象new ActionEnter(request,rootPath),因为我们之前加载了源码,所以这个时候ctrl点进去看他的构造方法可以发现一个ConfigManager类,再点进这个类中找到它的getConfigPath()方法,修改它的返回路径
因为我。把ueditor包放在了webContent下的page文件夹下,所以我的路径对应是上面这样,你可以根据自己的路径修改,如果不确定可以自己输出来看一下。
三、修改ueditor/ueditor.config.js配置文件,注意serverUrl:后面的值就是刚刚写得controller的映射
四、修改完发现在ueditor/jsp/下有一个config.json,点开一看,里面的配置注解写的很详细,因为我主要是上传图片,故只修改了上传图片配置项
到此你以为大概可以了吗?我当时配置到此紧张的到浏览器跑了一下,本以为可以了,但是提示上传数据未找到,扎心了,又是在网上一顿乱搜,最后终于找到了成功钥匙呀!
五、最后我们还需要自己写一个继承CommonsMultipartResolver的子类,这个类如果自己有做过简单文件的功能应该不会陌生,这就需要我们导jar包 ,分别为commons-fileupload-1.2.1 和commons-io-2.4.jar 。
下面就是最后一步啦 ,记得在springmvc.xml中配置好自己写的这个类,注意里面的id是固定了的,就得这么写才能注入进来。
这个时候再紧张的去浏览器跑一遍,发现上传成功没什么毛病,真的不容易了,看到上传的图片,都快哭了 = = 、