百度ueditor与spring mvc结合应做的修改.
By:Roy.LiuLast updated:2015-05-04
在使用百度ueditor 作为富文本编辑器时,java 版本默认提供了一个controller.jsp 用来上传,如果要求不高,采用这种方式,确实可以。但如果与spring mvc 结合,并且配置了spring mvc 的拦截路径等情况下,这样做很不好,而且也不是统一的spring mvc 的风格,所以得有所改变. 也就是自己要重新写一个spring mvc 的controller.
我在项目中是采用如下方式写的这个controller , 用起来还不错。
如果你有安全性检测,比如session 检测的,可以自己在里面加入代码,但一般都通过拦截器处理了,可以不在这里处理。
这样做了之后,在需要引入 ueditor 的页面,我们加入一个全局的javascript 变量:
当然,还需要修改一个很重要的文件:ueditor.config.js , 也就是修改上传的路径:
主要修改的就是serverUrl。
另外百度ueditor 是开源的,对于config.json 的路径等问题,完全还可以把源代码下载下来,自己跟踪修改,这样对于上传路径的问题,就不会那么纠结了。而且安全性也高,否则人家直接可以下载下来看。比如在我的项目中,我修改了路径:
ConfigManager 这个类:
这是根据我项目的情况修改的,有源代码了,其他修改更容易。关键是打造出满足自己项目的东西才行.
我在项目中是采用如下方式写的这个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; @Controller @RequestMapping(value = "/ueditor") public class UeditorController { @RequestMapping("/dispatch") public void config(HttpServletRequest request, HttpServletResponse response, String action) { 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(); } } }
如果你有安全性检测,比如session 检测的,可以自己在里面加入代码,但一般都通过拦截器处理了,可以不在这里处理。
这样做了之后,在需要引入 ueditor 的页面,我们加入一个全局的javascript 变量:
当然,还需要修改一个很重要的文件:ueditor.config.js , 也就是修改上传的路径:
window.UEDITOR_CONFIG = { //为编辑器实例添加一个路径,这个不能被注释 UEDITOR_HOME_URL: URL // 服务器统一请求接口路径 , serverUrl: window.PROJECT_CONTEXT + "ueditor/dispatch"
主要修改的就是serverUrl。
另外百度ueditor 是开源的,对于config.json 的路径等问题,完全还可以把源代码下载下来,自己跟踪修改,这样对于上传路径的问题,就不会那么纠结了。而且安全性也高,否则人家直接可以下载下来看。比如在我的项目中,我修改了路径:
ConfigManager 这个类:
private String getConfigPath () { //return this.parentPath + File.separator + ConfigManager.configFileName; //I modify this, because it is not suit for our porject. return this.rootPath + File.separator + "WEB-INF" + File.separator + "classes" + File.separator + ConfigManager.configFileName; }
这是根据我项目的情况修改的,有源代码了,其他修改更容易。关键是打造出满足自己项目的东西才行.
From:一号门
Previous:分享一个白盒子加密算法的PDF文档,可以借鉴里面的思想
COMMENTS