百度编辑器的运用可以参考我之前写的一篇文章,在java项目中加入百度富文本编辑器。这篇文章是以maven+spring mvc项目进行的,总得来说配置比较简单,但是如果是想在strus2项目中配置ueditor编辑器,需要注意以下细节。
1.保证ueditor所需要的包都导入到了项目,如果是maven项目,参考上述文章,如果是普通项目,将ueditor/jsp/lib下的包放入web-inf的lib包中。
2.在上传图片的时候,若提示“未找到上传文件”且其他地方配置无误,则需要做一下拦截器的配置。新建一个UeditorFilter,继承自struts2拦截器,代码如下。
package cn.wonyen.filter; import java.io.IOException; import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest; import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; public class UeditorFilter extends StrutsPrepareAndExecuteFilter {
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
//不过滤的url
String url = request.getRequestURI();
// System.out.println(url);
if (url.contains("/ueditor1_4_3/jsp/controller.jsp")) { //注意路径
chain.doFilter(req, res);
}else{
super.doFilter(req, res, chain);
}
} }
并且,由于这个拦截器继承自StrutsPrepareAndExecuteFilter拦截器,所以原本的web.xml中的关于struts的拦截器都可以注释掉了,否则UeditorFilter 不会起到作用。注释掉的web.xml如下。
<filter>
<filter-name>ueditorFilter</filter-name>
<filter-class>cn.wonyen.filter.UeditorFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ueditorFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<!-- <filter> -->
<!-- <filter-name>struts2</filter-name> -->
<!-- <filter-class> -->
<!-- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter -->
<!-- </filter-class> -->
<!-- </filter> -->
<!-- <filter-mapping> -->
<!-- <filter-name>struts2</filter-name> -->
<!-- <url-pattern>/*</url-pattern> -->
<!-- </filter-mapping> -->
<!-- <filter> -->
<!-- <filter-name>struts-prepare</filter-name> -->
<!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> -->
<!-- </filter> -->
<!-- <filter-mapping> -->
<!-- <filter-name>struts-prepare</filter-name> -->
<!-- <url-pattern>/*</url-pattern> -->
<!-- </filter-mapping> -->
<!-- <filter> -->
<!-- <filter-name>struts-execute</filter-name> -->
<!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> -->
<!-- </filter> -->
<!-- <filter-mapping> -->
<!-- <filter-name>struts-execute</filter-name> -->
<!-- <url-pattern>/*</url-pattern> -->
<!-- </filter-mapping> -->
3.如果图片可以上传,但是上传完以后显示在页面上的是图片的名称,而不是回显图片本身,则是图片上传路径配置的错误。如下图所示。
注意如下两个位置的配置。config.json下的imageUrlPrefix和imagePathFormat。这两个位置合起来构成图片的真实路径。(若是springmvc项目,两项可以合起来放在imagePathFormat项中配置。
imageUrlPrefix是前缀,我们填写项目名称就好,而imagePathFormat是图片的路径格式,可根据实际情况来填写。一般我们将图片放置于ueditor/jsp/upload/image文件夹下,并且按照时间的创建子文件夹。这两项配置好以后的代码如下:
"imageUrlPrefix": "/wycrm/", /* 图片访问路径前缀 */
"imagePathFormat": "/ueditor1_4_3/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
经过以上的一些配置,一般来说图片就可以正常的上传和显示了。