Ueditor+jsp+struts2 入门参考
1. 准备
1.1 web 项目
1.2 进入 ueditor 官网下载相应的包
参考:(http://ueditor.baidu.com/website/download.html#ueditor)
2. 项目加入 ueditor
2.1 将下载的 ueditor 包解压,然后可将文件夹名字改为 ueditor(我是这样的)
2.2 将文件夹 ueditor 复制到 web 项目(如:TestDemo)的 webroot
2.3 将 ueditor/jsp/lib 中的 jar 复制到 WEB-INF/lib 中,注意冲突。
3. ueditor 使用
3.1 在页面中添加 ueditor 的富文本框
3.1.1 导入文件
3.1.2 修改 ueditor.config.js
将 var URL = window.UEDITOR_HOME_URL ||
getUEBasePath();
修改为 var URL = window.UEDITOR_HOME_URL = "/TestDemo/ueditor/";
/TestDemo/ueditor/ :为项目的 ueditor 目录,建议修改为这种绝对路径。
3.1.3 页面编辑富文本
***现在你就可以使用ueditor了
但是,如果项目用了struts2,那么这种就不能上传图片了。
4. 解决 ueditor 不能上传图片
4.1 创建新的拦截器
4.1.1
第一步:重写 struts2 的转换器,重写类的内容如下:
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest;
public class RequestParseWrapper extends JakartaMultiPartRequest {
public void parse(HttpServletRequest servletRequest, String saveDir)throws
IOException
{
}
}
这里的方法是一个空方法,但是必须要有
第二步:配置 struts.xml,作用是让 struts2 使用我们的这个转换器,配置方法是在
struts.xml 中添加以下配置
bean 标签中的 name 是自定义的,class 的值是我们重写的转换器所在的位置
constant 标签中的 value 要和 bean 中的 name 保持一致,其他的不需要修改
4.1.2 如果需要结合 struts2 拦截器,则需要另外添加配置
原理是这样的,就是自己创建一个拦截器,替换默认的拦截器,然后将所不需要拦截的路径
过滤,其余的还是用默认拦截器
如:
public class EditorStrutsFilter extends StrutsPrepareAndExecuteFilter {
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String url = request.getRequestURI();
System.out.println(url);
if (url.contains("/jsp/")) {
System.out.println("使用自定义过滤器");
chain.doFilter(req, res);
} else {
System.out.println("使用默认过滤器");
super.doFilter(req, res, chain);
}
}
}
4.1.3 相应需要在 web.xml 中定义
strutsFilter
com.xymobile.filter.EditorStrutsFilter
strutsFilter
/*
但如果图片能上传但不能显示,可参考如下
4.2 成功上传图片却不能回显
这是因为路径问题,可以在 jsp/config.json 这个文件去改路径
通过“imageUrlPrefix”与“imagePathFormat”这两个属性去拼凑路径。
“imageUrlPrefix”是前缀的意思
如:我遇到的问题是图片回显地址为:
http://localhost:8080/ueditor/jsp/upload/image/......
而正确的地址是:
http://localhost:8080/TestDemo/ueditor/jsp/upload/image/......
“TestDemo” 是我项目的名字,所以,我通过配置“imageUrlPrefix”与“imagePathFormat”这
两个属性,
将他们设置为:
"imageUrlPrefix": "/TestDemo /",
"imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
就可以正确回显了
ueditor前后台数据交互,可参考:
http://www.cnblogs.com/lionden/archive/2012/07/13/ueditor.html
java配置ueditor中解决“未找到上传文件”错误提示
http://blog.sina.com.cn/s/blog_63b470180102ux4a.html