一、引入依赖
<!-- 添加百度编辑器ueditor支持 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
二、ueditor资源文件
其中config.json文件的配置如下:
三、页面使用ueditor:
写博客页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>写博客页面</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/jquery-easyui-1.3.3/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/jquery-easyui-1.3.3/themes/icon.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/static/jquery-easyui-1.3.3/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/static/jquery-easyui-1.3.3/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/static/jquery-easyui-1.3.3/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" charset="gbk" src="${pageContext.request.contextPath}/static/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="gbk" src="${pageContext.request.contextPath}/static/ueditor/ueditor.all.min.js"> </script>
<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<script type="text/javascript" charset="gbk" src="${pageContext.request.contextPath}/static/ueditor/lang/zh-cn/zh-cn.js"></script>
<script type="text/javascript">
function submitData(){
var title=$("#title").val();
var blogTypeId=$("#blogTypeId").combobox("getValue")
var content=UE.getEditor('editor').getContent()
var keyWord=$("#keyWord").val();
if(title==null || title==''){
alert("请输入标题!");
}else if(blogTypeId==null || blogTypeId==''){
alert("请选择博客类别!");
}else if(content==null || content==''){
alert("请填写内容!");
}else{
$.post("${pageContext.request.contextPath}/admin/blog/save.do",{'title':title,'blogType.id':blogTypeId,
'contentNoTag':UE.getEditor('editor').getContentTxt(),
'content':content,'summary':UE.getEditor('editor').getContentTxt().substr(0,155),'keyWord':keyWord},function(result){
if(result.success){
alert("博客发布成功!");
resetValue();
}else{
alert("博客发布失败!");
}
},"json");
}
}
function resetValue(){
debugger
$("#title").val("");
$("#blogTypeId").combobox("setValue","");
UE.getEditor('editor').setContent('');
$("#keyWord").val("");
}
</script>
</head>
<body style="margin: 10px">
<div id="p" class="easyui-panel" title="编写博客" style="padding: 10px">
<table cellspacing="20px">
<tr>
<td width="80px">博客标题:</td>
<td>
<input type="text" id="title" name="title" style="width: 400px"/>
</td>
</tr>
<tr>
<td>所属类别:</td>
<td>
<select class="easyui-combobox" style="width: 154px" id="blogTypeId" name="blogType.id" editable="false" panelHeight="auto">
<option value="">请选择博客类别...</option>
<c:forEach var="blogType" items="${blogTypeCountList }">
<option value="${blogType.id }">${blogType.typeName }</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td valign="top">博客内容:</td>
<td>
<script id="editor" name="content" type="text/plain" style="width:100%;height:500px;"></script>
</td>
</tr>
<tr>
<td>关键字:</td>
<td>
<input type="text" id="keyWord" name="keyWord" style="width: 400px"/> (多个关键字中间用空格隔开)
</td>
</tr>
<tr>
<td></td>
<td>
<a href="javascript:submitData()" class="easyui-linkbutton" data-options="iconCls:'icon-submit'">发布博客</a>
</td>
</tr>
</table>
</div>
<!-- 实例化编辑器 -->
<script type="text/javascript">
var ue = UE.getEditor('editor');
</script>
</body>
</html>
效果如图所示:
四、Controller方法:
/**
* 添加或者修改博客信息
* @param blog
* @param response
* @return
* @throws Exception
*/
@RequestMapping("/save")
public String save(Blog blog,HttpServletResponse response)throws Exception{
int resultTotal=0;
if(blog.getId()==null){
resultTotal=blogService.add(blog);
}else{
resultTotal=blogService.update(blog);
}
JSONObject result=new JSONObject();
if(resultTotal>0){
result.put("success", true);
}else{
result.put("success", false);
}
ResponseUtil.write(response, result);
return null;
}
五、mapper 文件 sql语句
<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="Blog" >
insert into t_blog values(null,#{title},#{summary},now(),0,0,#{content},#{blogType.id},#{keyWord})
</insert>
useGeneratedKeys设置为 true 时,表示如果插入的表id以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键id返回。
useGeneratedKeys参数只针对 insert 语句生效,默认为 false;
六、小疑惑:
即使上传成功,这里也看不到那张图片:
但却能正常访问:、
在开发环境会出现这种问题,但在实际应用时 不会的
最后,
ueditor资源文件地址:
ueditor静态资源