您的位置:首页 > 编程语言 > Java开发

Maven下SpringMVC整合UEditor

2015-09-08 00:00 691 查看
SpringMVC的搭建我就不啰嗦了,直接开干。

UEditor和SpringMVC整合有点复杂,首先下载UEditor的源码,其实主要是java源码,然后把如图所示的java代码直接copy到项目工程中:



大概就是这些:



这些源码导入之后会有很多jar包需要导入:

<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20141113</version>
</dependency>

然后呢把UEditor的JS还有css都copy到webapp中:



这里面有很多是用不到的,直接删掉就行了。

然后把配置文件config.json打开,我这里是修改了配置文件名的。



然后就是修改各种pathFormat,这个是上传目录路径,改成你自己的就好咯,这里很多人把这个config放在java工程的resources中,的确要专业些,但是java源码中的路径指向就要修改成WEB-INF class中,这个在用mvn tomcat7:run的时候会报找不到配置文件的异常,为了统一tomcat和mvn tomcat7:run都能找到该配置文件,我是直接放在webapp下的。

改完pathFormat之后需要修改下各种ListPath,改完后这个config的修改工作就完了,然后就是修改ueditor.config.js了



只定义了一个全局context_ 修改下serverUrl,这里的context_是JSP或者其它文件定义的,

= ;

这里serverUrl很重要,ueditor的上传啥的都是走的这个URL,然后就是建一个controller:

package com.ishare.mall.center.controller;

import com.baidu.ueditor.ActionEnter;
import com.ishare.mall.center.controller.base.BaseController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
* Created by yinlin on 2015/9/7.
* Description :
* Version 1.0
*/
@Controller
@RequestMapping(value = "/ueditor")
public class UploadController extends BaseController {

private static final Logger log = LoggerFactory.getLogger(UploadController.class);

public static Logger getLog() {
return log;
}

@RequestMapping("/dispatch")
public void config(HttpServletRequest request,  HttpServletResponse response, String action) {
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();
}

}
}

最后就是修改ueditor的源码类了: ConfigManager.java

修改下它的构造函数:

/*
* 通过一个给定的路径构建一个配置管理器, 该管理器要求地址路径所在目录下必须存在config.properties文件
*/
private ConfigManager ( String rootPath, String contextPath, String uri) throws FileNotFoundException, IOException {

rootPath = rootPath.replace( "\\", "/" );

this.contextPath = contextPath;

this.rootPath = rootPath;

if ( contextPath.length() > 0 ) {
this.originalPath = this.rootPath + uri.substring(contextPath.length() + (contextPath.endsWith("/") ? 0 : 1));
} else {
this.originalPath = this.rootPath + uri;
}

this.initEnv();

}

修改下Json返回图片URI contextPath路径:

private void initEnv () throws FileNotFoundException, IOException {

File file = new File( this.originalPath );

if ( !file.isAbsolute() ) {
file = new File( file.getAbsolutePath() );
}

this.parentPath = file.getParent();

String configContent = this.readFile( this.getConfigPath() );

try{
JSONObject jsonConfig = new JSONObject( configContent );
Iterator<String> it = jsonConfig.keys();
while(it.hasNext()){
String key=it.next();
if(key.contains("UrlPrefix")) {
jsonConfig.put(key, contextPath);
}
}
this.jsonConfig = jsonConfig;
} catch ( Exception e ) {
this.jsonConfig = null;
}

}

修改下json配置所在路径:

/**
* 获得配置路径
* @return
*/
private String getConfigPath () {

return this.rootPath + File.separator + "resources" + File.separator + "scripts" + File.separator + "ueditor" + File.separator + "config" + File.separator + ConfigManager.configFileName;

}

OK了,可以愉快的玩耍了。如果需要修改其他的,那就要去修改其他的源码咯。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java SpringMVC Maven UEditor