SSH网站开发(9)Ueditor运用在SpringMVC+Spring+Hibernate中

上一节简单讲解了Ueditor的初级使用方法。这一节就把Ueditor集成到 SSH框架中。

运用到新闻模块的,添加,修改功能中

ssh框架中关于Ueditor配置方式和上一节讲解的一样。不会的请看上一节内容。

添加模块

使用思想是这样的:通过JavaScript脚本将Ueditro编辑器中的内容获取后赋值给springMVC的form表单。最终还是有springMVC的form表单提交数据到Controller

添加界面引入需要的js文件

注意标记红色的地方(必须写这样写路径,不然有可能找不到文件,显示不出来Ueditor的界面,具体请看我最下面的:可能遇到的问题:Ueditor界面显示不出来


代码如下:

<script type="text/javascript" charset="utf-8"
	src="${pageContext.request.contextPath }/utf8-jsp/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8"
	src="${pageContext.request.contextPath }/utf8-jsp/ueditor.all.min.js">
</script>

<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<script type="text/javascript" charset="utf-8"
	src="${pageContext.request.contextPath }/utf8-jsp/lang/zh-cn/zh-cn.js"></script>


getContent()方法:获取编辑器文本内容,然后赋值给springMVC的form表单

<script type="text/javascript">
//保存方法
	//实例化编辑器
	//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
	//var ue = UE.getEditor('editor');
	var ue = UE.getEditor('editor');
	function getContent() {
		var detail = document.getElementById("detail");
		var arr = [];
		//arr.push("使用editor.getContent()方法可以获得编辑器的内容");
		//arr.push("内容为:");
		arr.push(ue.getContent());
		//alert(arr.join("\n"));
		detail.value = arr;
	}
	

</script>


提交的时候调用就行了


编辑模块
编辑模块分显示和提交两个步骤,

显示:思想正好和提交相反:这次是获取form表单内容,赋值给Ueditor显示出来。

提交:提交步骤跟上面的添加一样:获取Ueditor的内容,然后赋值给form表单提交。


提交就不说了。

光说显示吧:需要注意的是,给Ueditor添加监听,确定ueditor初始化显示工作完成后,才能给Ueditor赋值 ue.setContent()


	var ue = UE.getEditor('editor');

	function setContent() {

		var detail = document.getElementById("detail").value;
		
		//alert(detail);
		//编辑方法 // editor准备好之后才可以使用 
		ue.addListener("ready", function () { 
			
			//alert(detail);
			// ue.setContent(detail); //为什么这样写不行?跟下面的写法有什么区别吗?TMD日了狗了
	        ue.setContent(document.getElementById("detail").value); 
	       });
			 
	}


调用的时候也必须在显示Ueditor 和form表单的的下面,原因就是等ueditor初始化和form内容显示完毕两个条件确一不可如下:


注意:setContent()方法有个坑。如下:必须使用红色框里面的方式,红色框上面注释的方式不行,虽然我看不出两者的 区别。推测是setContent()方法有限制吧。



提交的时候更添加一样不要忘记调用getContent()方法



如果你的Ueditor界面显示不出来请看下面的内容:

可能遇到的问题:Ueditor界面显示不出来

在进行到新闻添加的时候集成了Ueditor到SSH中,一切都进行的是那么的顺利和美好。

但是进行到新闻的修改模块的时候出现了“”Ueditor界面显示不出来“的问题。而且测试发现修改界面的Ueditor一直是初始化准备工作结束不了(也就是初始化失败了界面显示不出来了)


原因分析:

分析一:可能是新闻修改界面关于Ueditor的代码写的有问题了。我开始一点点的检查。检查了至少10遍我感觉,没有一点差错了。这个原因排除。

分析二:因为在新闻的添加模块中Ueditor界面都是正常显示和使用的。所以Ueditor的配置绝逼没问题。

分析三:上面两个都没有问题。那么添加模块和修改模块到底有哪些区别和不一样的地方? 两者不一样的地方一定是原因的所在!!!!我坚信是这样的。

我开始查找两个模块不一样的地方了。(本来有个想法以为是Ueditor和SpringMVC框架冲突了(但是添加界面是正常的,不应该添加的时候不冲突,修改的时候冲突了,就算是这样也是两者不一样的地方导致的冲突)

首先我是这样排查的:把添加界面的代码全部复制粘贴给修改界面。两个界面的代码一模一样,但是添加界面的能正常显示,修改界面的还是不能显示。日了够

因为是界面显示不出来,所以先不管其他的,先把Ueditor界面显示出来再说。于是乎我把不相关的代码全部删除了。就留了一个显示Ueditor的代码

结果还是不行。

分析四:经过第三步,排除了前端界面代码的问题。一定是后端请求代码的问题。于是我认真查看了后端代码


添加界面的后端代码:



修改界面后台代码:


两者的区别我已经标出来了。

是的就是这里。这是SpringMVC中其实存在的一个坑。

修改界面的请求路径@PathVariable,导致的请求路径变化。请求界面资源查找不到了。


这时候ueditor的资源包路径就需要这样写了,一定要加上红框里面的代码。不然就找不到了(因为添加界面没有使用@PathVariable,所以之前的路径写法也是能找到资源的)。草

之前:



修改为:




这个问题我弄了一下午加一晚上了。真是TMD操蛋啊!

完!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值