百度配置器中默认处理的action可以处理各种请求不需要自己在单独写,尽量不要破坏百度编辑器中自带的jsp demo 我们可以直接使用
参数配置
前后端的配置统一写在后端(PHP版本的config在php/config.json),编辑器实例化时,异步读取后端配置信息,覆盖到前端的配置里。
后端获取的配置项 > 实例化传入的配置项 > ueditor.config.js文件的配置项。
我们需要配置的部分是
1、ueditor.config.js 中入口的位置
1
2
|
// 服务器统一请求接口路径,如果你直接使用jsp demo 那么这里就写demo中的访问位置,<
br
>//我们这里是做了action的转发,通过action转发到 百度提供的demo jsp中所以这样配置
, serverUrl: rootPath + "/common/baiduUploadEnter"
|
2、要在config.json中配置一下上传图片的访问前缀,也就是网址http:127.0.0.1/projectName 图片的保存路径默认是相对于web根目录而言的。
百度配置的jsp处理器里面的代码不能直接搬到action中只能在jsp中处理
通过查看源码发现 因为百度提供的demo 加载配置文件的方法不够灵活,如果在action中是加载不到cofig.json文件的路径的。
与springMVC整合时遇到的问题
上传的文件都会被springmvc的文件上传拦截器拦截,包装,这样百度编辑器接收到文件后不能识别文件格式,
因此把spring默认的commonsMultiparResolver
替换成我们自己写的commonsMultiparResolver
配置文件修改
1
2
3
|
<!-- 支持上传文件 -->
<
bean
id="multipartResolver"
class="com.fusionzoom.common.utils.CommonsMultiparResolver"></
bean
>
|
自定义commonsMultiparResolver放行百度编辑器的请求action
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
CommonsMultiparResolver
extends
org.springframework.web.multipart.commons.CommonsMultipartResolver {
/**
* 用于过滤百度编辑器上传文件时阻止 commonsMultipartResolver 对文件进行包装
*/
@Override
public
boolean
isMultipart(javax.servlet.http.HttpServletRequest request) {
String uri = request.getRequestURI();
System.out.println(uri);
//过滤使用百度EmEditor的URI
if
(uri.indexOf(
"common/baiduUploadEnter"
) >
0
) {
System.out.println(
"commonsMultipartResolver 放行"
);
return
false
;
}
System.out.println(
"commonsMultipartResolver 拦截"
);
return
super
.isMultipart(request);
}
}
|