- 浏览: 578560 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
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会自动转义回来的。
进入详情页时候直接输出即可。
发表评论
-
ckeditor自动换行问题
2011-11-18 19:39 3782项目中用到ckeditor,研究源码之后得到适合我公司的编辑器 ... -
ckeditor取值赋值
2011-11-13 17:14 1439CKEditor 是著名的 HTML 编辑器,IBM、Ora ... -
ckeditor取值赋值问题
2011-11-13 17:12 3423最近的项目中遇到个很头疼的问题,异步提交表单后需要清空表单数据 ... -
ckeditor报错ckeditor 使用 uncaught exception: [CKEDITOR.editor] The instance
2011-11-08 16:51 1388config_front.js $(function ... -
html文本编辑器--基于Html
2011-10-10 22:45 1160以前一直不知道好多网站上所说的在线编辑器是怎么回事,后来 ...
相关推荐
将这三者整合,意味着在Spring MVC驱动的Web应用中,你可以使用CKEditor作为文本编辑区域,并通过CKFinder来管理编辑器内的多媒体资源。具体整合步骤大致如下: 1. 引入依赖:在Spring MVC项目中,添加CKEditor和...
ckeditor整合Spring MVC实现富文本编辑器上传图片实例 项目描述 SpringMVC 实现Ckeditor富文本编辑器,上传图片 运行环境 jdk8+tomcat8+mysql+eclipse 项目技术(必填) spring+spring mvc
mathtype 基于springboot ckeditor整合mathType完整实例
配置ckfinder时,需要定义连接器(Connector),这是ckfinder与服务器交互的关键部分,通常会用到Spring或Servlet等技术。 在JAVA工程中,你可能需要创建一个Servlet来处理ckfinder的请求,这个Servlet会处理文件的...
整合CKFinder到CKEditor中,可以实现以下功能: 1. **图片库**:CKFinder可以作为图片库,用户可以直接在编辑器中插入存储在服务器上的图片。 2. **文件链接**:用户可以方便地将服务器上的文档、音频或视频文件...
Mybatis与Spring的整合是为了在Java开发中同时利用这两个优秀的框架,提高开发效率和代码的可维护性。Mybatis是一个轻量级的持久层框架,它简化了SQL映射和对象关系映射的过程,而Spring则是一个全面的企业级应用...
本篇文章将详细介绍如何在SSH框架中整合CKEditor与ExtJS,以实现高效、美观的前端文本编辑功能。 首先,我们需要理解SSH框架的运作原理。Spring作为核心框架,负责管理对象的依赖注入(DI)和面向切面编程(AOP),...
"grails ckeditor 0.4修改支持flv插入" 这个标题揭示了我们正在处理一个Grails应用,其中整合了CKEditor 0.4版本,并且已经进行了定制以支持FLV(Flash Video)格式的媒体插入。这表明开发者可能在编辑器中扩展了...
Mybatis和Spring的整合主要依赖于Mybatis-Spring这个库,它是Mybatis社区为了弥补Spring3在Mybatis3支持上的空白而开发的。这个库使得Mybatis与Spring的集成更加平滑,允许开发者充分利用两者的优点,实现数据访问层...
将CKFinder与CKEditor整合,可以实现在CKEditor中直接上传、选择和插入服务器上的文件。这种集成通常涉及以下步骤: 1. **安装CKEditor**:首先,在项目中引入CKEditor的JavaScript库,根据官方文档设置初始化配置...
【标题】"s2sh版本ckeditor"涉及到的是一个基于Struts2(S2)、Spring(S)和Hibernate(H)的Web开发框架整合CKEditor 3.2的使用。CKEditor是一款流行的开源富文本编辑器,它提供了丰富的文本格式化功能,常用于...
这使得项目可以在Java服务器环境下运行,如Tomcat、Jetty等,同时也支持Spring、Struts等主流Java框架的整合。 **三、项目特点** 1. **即下即用**:该项目作为一个完整的项目包,下载后可以直接运行,无需复杂的...
将处理文件上传的Java类添加到你的Web应用中,确保在web.xml或通过注解配置(如Spring MVC的`@Controller`)来映射URL。 9. **测试与调试** 使用CKEditor的文件浏览/上传功能进行测试,确保上传过程顺利,文件...
struts2.3.4.1+hibernate4.1.6+spring3.1.2 整合,全注解例子。数据库用的mysql,数据库会自动生成。整合分页、ckeditor+ckfinder.CK有些问题,上传图片不显示缩略图。
7. **测试与调试**:最后,进行集成测试,确保编辑器功能正常,与后台交互无误,并进行必要的性能优化。 通过以上步骤,我们可以成功地在Spring Boot应用中集成富文本编辑器,提升用户在网页上的编辑体验。这样的...
本文将深入探讨如何将FCKeditor与Java服务器页面(JSP)进行整合,以及简化后的实现过程。 一、FCKeditor简介 FCKeditor是一款JavaScript库,它为Web应用程序提供了类似桌面文本编辑器的界面,支持多种格式的文本...
以上内容详细解释了标题和描述中涉及的各个技术点,展示了如何将它们整合在一起构建一个功能完善的博客管理系统。在实际开发中,还需要考虑性能优化、异常处理、安全性等问题,以确保系统的稳定性和用户体验。
FCKeditor(现在已经更名为CKEditor)是一个流行的开源JavaScript编辑器,它允许用户在Web页面上创建、编辑和格式化文本内容。然而,将FCKeditor与后端服务器如Java环境集成,需要处理数据传输、文件上传以及服务器...
本篇文章将探讨如何在Spring Boot环境下实现文件上传,并结合富文本编辑器进行整合。 首先,我们需要在Spring Boot项目中引入`spring-boot-starter-web`依赖,它包含了处理文件上传所需的`MultipartFile`支持。然后...