UEditor 1.4.3 部署示例(Jsp版,解决上传错误和显示问题)
1.从UEditor官网下载压缩包,这里选择1.4.3 UTF-8版。
2.解压缩,把文件夹重命名为ueditor,复制到WebRoot目录下;
把/ueditor/jsp/lib下的jar包移动到:WEB-INF/lib.
注:可能会显示js有错误,不用理会。
3.打开ueditor/ueditor.config.js,找到这句:
var URL = window.UEDITOR_HOME_URL || getUEBasePath();
改成 var URL = window.UEDITOR_HOME_URL || "/你的项目名/ueditor/" ;
4.打开ueditor/jsp/config.json,修改所有形如xxxUrlPrefix的值,例如:
"imageUrlPrefix": "/项目名", /* 图片访问路径前缀 */
至此初始配置完毕,测试:
新建一个网页(这里是.jsp),<head></head>之间加上:
<link rel="stylesheet" type="text/css" href="ueditor/themes/default/css/ueditor.css" /> <script type="text/javascript" charset="utf-8" src="ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="ueditor/ueditor.all.js"></script>
实例化编辑器,可以放在一个TABLE里:
<TABLE> <TR> <td class="tdFormLabel"></td> <td><script type="text/plain" id="editor" name="myContent"></script> <script type="text/javascript"> var editor = new UE.ui.Editor({ initialFrameHeight : 280, initialFrameWidth : 800 //设置编辑器大小 }); editor.render("editor"); </script> </td> </TR> <TABLE>
部署到tomcat,打开页面:
各种功能OK。
以下是配合Struts2使用的教程(配合Struts2标签):
1.打开刚才的jsp页面,记得最上面加上标签引用
<%@ taglib uri="/struts-tags" prefix="s"%>
2.TABLE中,加入一个提交按钮:
<TR> <td class="tdFormLabel"></td> <td class="tdFormControl"><s:submit cssClass="btn" value="发布" /></td> </TR>3.TABLE外面,使用如下代码包围:
<s:form action="你定义的action" namespace="/" method="post">
</s:form>4.Action中:
HttpServletRequest request = ServletActionContext.getRequest(); String str= request.getParameter("myContent");
此处的"myContent"对应的是页面标签中name="myContent"这个属性。
存入一个String中(PS:编辑器提交的是HTML代码,MySQL中建议使用mediumtext存储)。5.此时各种上传都不能使用,需要写一个filter使struts2不过滤ueditor/jsp/controller.jsp:
public class UEFilter 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); try { if (url.contains("/controller.jsp")) { System.out.println("使用自定义的过滤器"); chain.doFilter(req, res); } else { System.out.println("使用默认的过滤器"); super.doFilter(req, res, chain); } } catch (Exception e) { e.printStackTrace(); } } }
到web.xml修改如下:
<filter> <filter-name>struts2</filter-name> <!-- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter --> <filter-class> zju.rjxy.web.util.UEFilter </filter-class> </filter>
6.此时上传仍有可能报错,提示nosuchmethod,解决方案:
部署后,到tomcat项目目录中的\WEB-INF\lib文件夹下,手动删除commons-io-1.3.2.jar或其他1.x版本(UEditor自带的是2.4版)
PS:上传后的路径保存为HTML代码放在帖子内容中,所以数据库中不需要相应的表。
此时已经可以保存编辑器内容到数据库,但是取出时,如果使用<s:property value=" "/>显示,会发现取出的是未经解析的HTML代码,需要加上一个escape属性:
<s:property value="themeBody" escape="false" />
- 点赞 1
- 收藏
- 分享
- 文章举报
- requires erlang >= R16B-03
- switch调用Enum报错 Constant expression required
- composer.json中require-dev和require的区别
- 【资源分享】StatQuest 统计学
- XMLHttpRequest异步对象
- HttpServletRequest get
- buildozer termux打包记录
- hdu 2062 Subset sequence
- stack容器和queue容器
- deque容器
- The server encountered an internal error () that prevented it from fulfilling this request.maven报错
- @RequestMapping
- ArrayBlockingQueue源码解析
- LinkedBlockingQueue源码解析
- grails配置druid监控sql
- JSTL c:if test为true却不执行的问题
- UI自动化中我遇到的问题整理
- iOS UITableView(二)
- iOS UIAlertController
- iOS UIPickerView的使用