`
woshixushigang
  • 浏览: 578560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

spring与ckeditor整合

 
阅读更多

 

 

jsp部分代码

<tr>
<th style="height: 20px;">案例正文<em>(必填)</em>
</th>

<td>最多填写2000字</td>

</tr>

<tr>
<td colspan="2"><textarea class="w660 h100 mb10"
id="caseText" name="caseText"
onkeydown="if(this.value.length >2000) this.value=this.value.substr(0,2000);">
<c:out value="${cases.caseText}" escapeXml="true"></c:out> </textarea>
</td>
</tr>		
。。。。。。
<script type="text/javascript"
	src="<spring:url value="/static/js/base.js" htmlEscape="true" />"></script>
<script type="text/javascript"
	src="<spring:url value="/static/js/case.js" htmlEscape="true" />
?aa=<%=System.currentTimeMillis()%>"></script>
<script type="text/javascript"
	src="<spring:url value="/static/editor/ckeditor.js"></spring:url>"></script>
<script type="text/javascript"
	src="<spring:url value="/static/editor/config_front.js"></spring:url>"></script>
<script type="text/javascript">
	var editor = CKEDITOR.replace('caseText', {
		customConfig : 'config_front.js'
	});
</script> 

 case.js

function save() {
	/* 必检字段 */
	var LastName = $("#LastName").val();// 客户姓氏
	var title = $("#title").val();// 案例标题
	var age = $("#age").val(); // 客户年龄
	var occupation = $("#occupation").val();// 客户身份
	var Income = $("#Income").val();// 月均收入
	var AnnualPremium = $("#AnnualPremium").val();// 年缴保费
	var CustomerDemand = $("#CustomerDemand").val();// 客户需求
	var caseText = editor.document.getBody().getHtml();
	// var caseText = $("#caseText").val();// 案例正文
	var InsuranceCompany = $("#InsuranceCompany").val(); // 保险公司
	var InsuranceProducts = $("#InsuranceProducts").val(); // 保险产品
	var appellation = $("#appellation").val(); // 称谓
	var sex = $("#sex").val(); // 性别

	var id = $("#id").val(); // id

	// 判断空
	if ($.trim(title) == '') {
		alert('案例标题');
		return false;
	}

	if ($.trim(LastName) == '') {
		alert('请输入姓氏');
		return false;
	}

	if ($.trim(age) == '') {
		alert('请选择年龄');
		return false;
	}

	if ($.trim(occupation) == '') {
		alert('请填写客户身份');
		return false;
	}

	if ($.trim(Income) == '') {
		alert('请填写月均收入');
		return false;
	}

	if ($.trim(AnnualPremium) == '') {
		alert('请填写年缴保费');
		return false;
	}

	if ($.trim(CustomerDemand) == '') {
		alert('请填写客户需求');
		return false;
	}

	if (CustomerDemand.length > 200) {
		alert("客户需求字数不能大于200字");
		return;
	}

	if ($.trim(editor.document.getBody().getText()) == '') {
		alert('请填写案例正文');
		return false;
	}

	if (caseText.length > 2000) {
		alert("案例正文字数不能大于2000字");
		return;
	}

	if ($.trim(InsuranceCompany) == 0) {
		alert('请填写保险公司');
		return false;
	}

	if ($.trim(InsuranceProducts) == '') {
		alert('请填写保险产品');
		return false;
	}

	// 判断格式
	if (!nameCheck('title')) {
		alert('请填写正确格式的标题!');
		return false;
	}

	if (!nameCheck('LastName')) {
		alert('请正确输入姓氏');
		return false;
	}

	if (!nameCheck('occupation')) {
		alert('请填写客户身份');
		return false;
	}

	if (!numCheck('Income')) {
		alert('请填写月均收入');
		return false;
	}

	if (!numCheck('AnnualPremium')) {
		alert('请填写年缴保费');
		return false;
	}

	if (!numCheck("Income")) {
		alert('请填写月均收入!');
		return false;
	}
	// $('#myForm').submit();//验证通过,提交到action
	// var content = $("#description").val();// 日程内容
	// var circulateFlg = $("#circulateFlg").val();// 重复flg
	// var LastName = $("#LastName").val();// 客户姓氏
	// var title = $("#title").val();// 案例标题
	// var age = $("#age").val(); // 客户年龄
	// var occupation = $("#occupation").val();// 客户身份
	// var Income = $("#Income").val();// 月均收入
	// var AnnualPremium = $("#AnnualPremium").val();// 年缴保费
	// var CustomerDemand = $("#CustomerDemand").val();// 客户需求
	// var caseText = $("#caseText").val();// 案例正文
	// var InsuranceCompany = $("#InsuranceCompany").val(); // 保险公司
	// var InsuranceProducts = $("InsuranceProducts").val(); // 保险产品
	/*
	 * var submitValue = "LastName=" + LastName + "&title=" + title + "&age=" +
	 * age + "&occupation=" + occupation + "&Income=" + Income +
	 * "&AnnualPremium=" + AnnualPremium + "&CustomerDemand=" + CustomerDemand +
	 * "&caseText=" + caseText + "&InsuranceCompany=" + InsuranceCompany +
	 * "&InsuranceProducts=" + InsuranceProducts + "&sex="+sex+
	 * "&appellation="+appellation+ "&id="+id;
	 */
	$.post("/cases/add", {
		LastName : LastName,
		title : title,
		age : age,
		occupation : occupation,
		Income : Income,
		AnnualPremium : AnnualPremium,
		CustomerDemand : CustomerDemand,
		caseText : caseText,
		InsuranceCompany : InsuranceCompany,
		InsuranceProducts : InsuranceProducts,
		sex : sex,
		appellation : appellation,
		id : id
	}, function(data) {

		if (data.status == 0) {
			$(".contact_tips").attr("style", "inline");

			if (id > 0) {
				document.getElementById("sp").innerText = "编辑成功";
			} else {
				document.form1.reset();
			}
			location.href = "#tips";
			// 清空选项
			// $("#reset").click();

		} else {
			alert("添加失败");
		}

	});
	// ajax提交数据
	// $.ajax({
	// type : 'post',
	// data : submitValue,
	// url : '/cases/add',
	// cache : false,
	// async : true,
	// success : function(data) {
	// if (data.status == 0) {
	// $(".contact_tips").attr("style", "inline");
	//						
	// if(id>0){
	// document.getElementById("sp").innerText ="编辑成功";
	// }else{
	// document.form1.reset();
	// }
	// location.href="#tips";
	// //清空选项
	// // $("#reset").click();
	//					
	// } else {
	// alert("添加失败");
	// }
	// }
	// });
}
 

 

 

注意:编辑页面和新增案例页面一致,同一个页面。

 

弄好后效果如图:

 

如果我提交时候,将case.js代码中注释掉得 $.ajax 代码放开,采用这个异步提交方式的话,我用火狐浏览器看post请求

caseText值是正常的,即html代码,但是我在类里面获取caseText值时候发现 <script>代码及后面的test都不见了。

莫非jquery中的 ajax方式将 参数 处理了?

时间紧只能用$.post方式,这回成功了,一堆html代码包括 <script>一堆转义的html代码传到了后台,后台直接插入数据库。

 

ckeditor本身采用了传递html代码方式,避免了恶意代码攻击,存到数据库也是html代码,但是我进入到编辑页面时候,需要将存入数据库的html代码再放入ckeditor文本框中,注意:不要做转义处理,ckeditor接受到方才提交的html代码,会自动转义的,这回就能看到刚才提交后的效果。

 

展示详情时候,需要将hmtl代码直接输出,${caseText} 或者用 <c:out value="${caseText}" escapeXml="false"></c:out>

这样输出到页面才是正确的值。

 

结论:进入编辑页面时候 ,ckeditor需要接收html代码,不是转义后的,因为ckeditor会自动转义回来的。

 

进入详情页时候直接输出即可。

 

分享到:
评论

相关推荐

    springmc ckeditor ckfinder三者整合

    将这三者整合,意味着在Spring MVC驱动的Web应用中,你可以使用CKEditor作为文本编辑区域,并通过CKFinder来管理编辑器内的多媒体资源。具体整合步骤大致如下: 1. 引入依赖:在Spring MVC项目中,添加CKEditor和...

    ckeditor整合Spring MVC实现富文本编辑器上传图片实例

    ckeditor整合Spring MVC实现富文本编辑器上传图片实例 项目描述 SpringMVC 实现Ckeditor富文本编辑器,上传图片 运行环境 jdk8+tomcat8+mysql+eclipse 项目技术(必填) spring+spring mvc

    基于springboot ckeditor整合mathType完整实例

    mathtype 基于springboot ckeditor整合mathType完整实例

    整合ckeditor+ckfinder实现图片或文件上传功能

    配置ckfinder时,需要定义连接器(Connector),这是ckfinder与服务器交互的关键部分,通常会用到Spring或Servlet等技术。 在JAVA工程中,你可能需要创建一个Servlet来处理ckfinder的请求,这个Servlet会处理文件的...

    CKEditor3.5.2+CKfinder

    整合CKFinder到CKEditor中,可以实现以下功能: 1. **图片库**:CKFinder可以作为图片库,用户可以直接在编辑器中插入存储在服务器上的图片。 2. **文件链接**:用户可以方便地将服务器上的文档、音频或视频文件...

    Mybatis与Spring整合

    Mybatis与Spring的整合是为了在Java开发中同时利用这两个优秀的框架,提高开发效率和代码的可维护性。Mybatis是一个轻量级的持久层框架,它简化了SQL映射和对象关系映射的过程,而Spring则是一个全面的企业级应用...

    SSH+ExtJs完成CKEditor富文本编辑器整合

    本篇文章将详细介绍如何在SSH框架中整合CKEditor与ExtJS,以实现高效、美观的前端文本编辑功能。 首先,我们需要理解SSH框架的运作原理。Spring作为核心框架,负责管理对象的依赖注入(DI)和面向切面编程(AOP),...

    grails ckeditor 0.4修改支持flv插入

    "grails ckeditor 0.4修改支持flv插入" 这个标题揭示了我们正在处理一个Grails应用,其中整合了CKEditor 0.4版本,并且已经进行了定制以支持FLV(Flash Video)格式的媒体插入。这表明开发者可能在编辑器中扩展了...

    浅析mybatis和spring整合的实现过程

    Mybatis和Spring的整合主要依赖于Mybatis-Spring这个库,它是Mybatis社区为了弥补Spring3在Mybatis3支持上的空白而开发的。这个库使得Mybatis与Spring的集成更加平滑,允许开发者充分利用两者的优点,实现数据访问层...

    ckeditor+ckfinder

    将CKFinder与CKEditor整合,可以实现在CKEditor中直接上传、选择和插入服务器上的文件。这种集成通常涉及以下步骤: 1. **安装CKEditor**:首先,在项目中引入CKEditor的JavaScript库,根据官方文档设置初始化配置...

    s2sh版本ckeditor

    【标题】"s2sh版本ckeditor"涉及到的是一个基于Struts2(S2)、Spring(S)和Hibernate(H)的Web开发框架整合CKEditor 3.2的使用。CKEditor是一款流行的开源富文本编辑器,它提供了丰富的文本格式化功能,常用于...

    ckeditor+ckfinder(java 版本)

    这使得项目可以在Java服务器环境下运行,如Tomcat、Jetty等,同时也支持Spring、Struts等主流Java框架的整合。 **三、项目特点** 1. **即下即用**:该项目作为一个完整的项目包,下载后可以直接运行,无需复杂的...

    ckeditor支持文件上传的java类

    将处理文件上传的Java类添加到你的Web应用中,确保在web.xml或通过注解配置(如Spring MVC的`@Controller`)来映射URL。 9. **测试与调试** 使用CKEditor的文件浏览/上传功能进行测试,确保上传过程顺利,文件...

    struts2.3.4.1+hibernate4.1.6+spring3.1.2 整合全注解例子

    struts2.3.4.1+hibernate4.1.6+spring3.1.2 整合,全注解例子。数据库用的mysql,数据库会自动生成。整合分页、ckeditor+ckfinder.CK有些问题,上传图片不显示缩略图。

    springboot集成富文本编辑器

    7. **测试与调试**:最后,进行集成测试,确保编辑器功能正常,与后台交互无误,并进行必要的性能优化。 通过以上步骤,我们可以成功地在Spring Boot应用中集成富文本编辑器,提升用户在网页上的编辑体验。这样的...

    FCK整合JSP 简化之后的

    本文将深入探讨如何将FCKeditor与Java服务器页面(JSP)进行整合,以及简化后的实现过程。 一、FCKeditor简介 FCKeditor是一款JavaScript库,它为Web应用程序提供了类似桌面文本编辑器的界面,支持多种格式的文本...

    shiro权限管理+SSM登陆+spring定时器+基本博客管理

    以上内容详细解释了标题和描述中涉及的各个技术点,展示了如何将它们整合在一起构建一个功能完善的博客管理系统。在实际开发中,还需要考虑性能优化、异常处理、安全性等问题,以确保系统的稳定性和用户体验。

    java整合fck例子jar包

    FCKeditor(现在已经更名为CKEditor)是一个流行的开源JavaScript编辑器,它允许用户在Web页面上创建、编辑和格式化文本内容。然而,将FCKeditor与后端服务器如Java环境集成,需要处理数据传输、文件上传以及服务器...

    springboot文件上传整合富文本编辑器(不完整)

    本篇文章将探讨如何在Spring Boot环境下实现文件上传,并结合富文本编辑器进行整合。 首先,我们需要在Spring Boot项目中引入`spring-boot-starter-web`依赖,它包含了处理文件上传所需的`MultipartFile`支持。然后...

Global site tag (gtag.js) - Google Analytics