- 浏览: 230491 次
- 性别:
- 来自: 武汉
最新评论
-
spp_1987:
org.springframework.beans.facto ...
Hibernate4之多对多双向关联 -
spp_1987:
后台保存订单下面 有很多订单 调了 对应什么方法 实现的?
Hibernate4之多对多双向关联 -
spp_1987:
订单 和 商品之间 有中间表存在吗???
Hibernate4之多对多双向关联 -
spp_1987:
跟 官方 hibernate4.2.5提供 的 manytom ...
Hibernate4之JPA规范配置详解 -
zhuguopei_java:
谢谢。楼主你这是解释源码吗
Struts2中action接收参数的三种方法及ModelDriven和Preparable接口结合JAVA反射机制的灵活用法
先从官网上下载好最新的CKeditor和CKfinder包之后,解压ckeditor和ckfinder,把ckeditor和ckfinder放在同一个文件夹里面。如下图:
然后开始整合Struts2和CKeditor
首先配置fck.xml文件,需要注意的是<baseURL>/Files/</baseURL>这里指的应用相对路径,如上图所示,而<baseDir></baseDir>指的绝对路径。这里推荐使用相对路径,路径的作用是后面文件管理器读取文件时的路径。在后面的xml节点中还可以配置上传图片时加载哪个文件夹,加载其他文件加载文件夹名,还可以设置上传文件规定的后缀名,还有图片的长宽值,隐藏哪些文件夹,还有文件缩略图的大小参数等等。
然后配置web.xml文件,这里servlet一定要配置在Struts2拦截器前面。
然后是配置个性化的ckeditor界面,而且要想集成ckfinder必须按下面配置ckeditor文件夹下的config.js文件:
最后是破解ckfinder,因为ckfinder并不是免费的,所以需要破解才能得到所有功能和去除水印,在网上有很多方法,不过我这里已经整合好,完全免费而且无水印版本,在下面附件中下载。
JSP页面,其实有三种方法调用ckeditor,可以用他自己的标签库,也可以用css方法。我这里使用的是js加载,个人觉得在各浏览器最兼容。
这里鼠标右键点击图片缩略图可以进行下载,如果破解权限后,还可以在文件夹之间互相拖动达到复制粘贴的目的。附件中我破解好的最新版本
当点击文件上传按钮时调用的action就是'imageUpload?type=image',然后结合我以前对struts2文件上传下载的博文中讲到的知识对文件数据进行组织,文件字段这里默认是upload字段,所以在后台可以通过这个字段得到文件类型,文件名和文件二进制数据,最后可以通过IO写入到其他文件夹或者存入数据库即可。
然后开始整合Struts2和CKeditor
首先配置fck.xml文件,需要注意的是<baseURL>/Files/</baseURL>这里指的应用相对路径,如上图所示,而<baseDir></baseDir>指的绝对路径。这里推荐使用相对路径,路径的作用是后面文件管理器读取文件时的路径。在后面的xml节点中还可以配置上传图片时加载哪个文件夹,加载其他文件加载文件夹名,还可以设置上传文件规定的后缀名,还有图片的长宽值,隐藏哪些文件夹,还有文件缩略图的大小参数等等。
<config> <enabled>true</enabled> <baseDir></baseDir> <baseURL>/Files/</baseURL> <licenseKey></licenseKey> <licenseName></licenseName> <imgWidth>1600</imgWidth> <imgHeight>1200</imgHeight> <imgQuality>80</imgQuality> <uriEncoding>UTF-8</uriEncoding> <forceASCII>false</forceASCII> <disallowUnsafeCharacters>false</disallowUnsafeCharacters> <userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar> <checkDoubleExtension>true</checkDoubleExtension> <checkSizeAfterScaling>true</checkSizeAfterScaling> <secureImageUploads>true</secureImageUploads> <htmlExtensions>html,htm,xml,js</htmlExtensions> <hideFolders> <folder>.svn</folder> <folder>CVS</folder> </hideFolders> <hideFiles> <file>.*</file> </hideFiles> <defaultResourceTypes></defaultResourceTypes> <types> <type name="Files"> <url>%BASE_URL%files/</url> <directory>%BASE_DIR%files</directory> <maxSize>0</maxSize> <allowedExtensions>7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip </allowedExtensions> <deniedExtensions></deniedExtensions> </type> <type name="Images"> <url>%BASE_URL%images/</url> <directory>%BASE_DIR%images</directory> <maxSize>0</maxSize> <allowedExtensions>bmp,gif,jpeg,jpg,png</allowedExtensions> <deniedExtensions></deniedExtensions> </type> <type name="Flash"> <url>%BASE_URL%flash/</url> <directory>%BASE_DIR%flash</directory> <maxSize>0</maxSize> <allowedExtensions>swf,flv</allowedExtensions> <deniedExtensions></deniedExtensions> </type> </types> <accessControls> <accessControl> <role>*</role> <resourceType>*</resourceType> <folder>/</folder> <folderView>true</folderView> <folderCreate>true</folderCreate> <folderRename>true</folderRename> <folderDelete>true</folderDelete> <fileView>true</fileView> <fileUpload>true</fileUpload> <fileRename>true</fileRename> <fileDelete>true</fileDelete> </accessControl> </accessControls> <thumbs> <enabled>true</enabled> <url>%BASE_URL%_thumbs/</url> <directory>%BASE_DIR%_thumbs</directory> <directAccess>false</directAccess> <maxHeight>100</maxHeight> <maxWidth>100</maxWidth> <quality>80</quality> </thumbs> <plugins> <plugin> <name>imageresize</name> <class>com.ckfinder.connector.plugins.ImageResize</class> <params> <param name="smallThumb" value="90x90"></param> <param name="mediumThumb" value="120x120"></param> <param name="largeThumb" value="180x180"></param> </params> </plugin> <plugin> <name>fileeditor</name> <class>com.ckfinder.connector.plugins.FileEditor</class> <params></params> </plugin> </plugins> <basePathBuilderImpl>com.ckfinder.connector.configuration.ConfigurationPathBuilder</basePathBuilderImpl> </config>
然后配置web.xml文件,这里servlet一定要配置在Struts2拦截器前面。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Struts2_FCK</display-name> <welcome-file-list> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>ConnectorServlet</servlet-name> <servlet-class>com.ckfinder.connector.ConnectorServlet</servlet-class> <init-param> <param-name>XMLConfig</param-name> <param-value>/WEB-INF/ckfinder.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ConnectorServlet</servlet-name> <url-pattern> /FckEditor/ckfinder/core/connector/java/connector.java </url-pattern> </servlet-mapping> <session-config> <session-timeout>10</session-timeout> </session-config> <filter> <filter-name>struts2Filter</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
然后是配置个性化的ckeditor界面,而且要想集成ckfinder必须按下面配置ckeditor文件夹下的config.js文件:
CKEDITOR.editorConfig = function(config) { config.language = 'zh-cn';//配置语言 config.uiColor = '#FFF';//背景颜色 config.width = '800px';//宽度 config.height = '300px';//高度 config.skin = 'office2003';//编辑器皮肤样式: office2003 //config.toolbar = "Full"; //工具栏样式 全能工具栏:Basic config.font_names = '宋体/宋体;黑体/黑体;仿宋/仿宋_GB2312;楷体/楷体_GB2312;隶书/隶书;幼圆/幼圆;' + config.font_names; config.toolbar = [ ['Source', 'Preview', '-'], ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', ], ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat'], ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar','PageBreak'], '/', ['Bold', 'Italic', 'Underline', '-', 'Subscript', 'Superscript'], ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'], ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'], ['Link', 'Unlink', 'Anchor'], '/', ['Format', 'Font', 'FontSize'], ['TextColor', 'BGColor'], ['Maximize', 'ShowBlocks', '-', 'About'] ]; //ckfinder配置 config.filebrowserBrowseUrl = 'FckEditor/ckfinder/ckfinder.html'; config.filebrowserImageBrowseUrl = 'FckEditor/ckfinder/ckfinder.html?type=Images'; config.filebrowserFlashBrowseUrl = 'FckEditor/ckfinder/ckfinder.html?type=Flash'; config.filebrowserUploadUrl = 'fileUpload?type=file'; config.filebrowserImageUploadUrl = 'imageUpload?type=image'; config.filebrowserFlashUploadUrl = 'flashUpload?type=flash'; config.filebrowserWindowWidth = '800'; config.filebrowserWindowHeight = '480'; };
最后是破解ckfinder,因为ckfinder并不是免费的,所以需要破解才能得到所有功能和去除水印,在网上有很多方法,不过我这里已经整合好,完全免费而且无水印版本,在下面附件中下载。
JSP页面,其实有三种方法调用ckeditor,可以用他自己的标签库,也可以用css方法。我这里使用的是js加载,个人觉得在各浏览器最兼容。
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>FCK</title> <script type="text/javascript" src="FckEditor/ckeditor/ckeditor.js"></script> <script type="text/javascript"> function check(){ var editor_data = CKEDITOR.instances.editor.getData(); if(editor_data == ""){ alert("请输入内容后再提交"); return false; }else return true; } </script> </head> <center> <body> <form action="save" method="post" onsubmit="return check();"> <textarea id="editor" name="content" cols="30" rows="4" ></textarea> <script type="text/javascript"> CKEDITOR.replace('editor',{ filebrowserImageUploadUrl:'imageUpload?type=image', filebrowserFlashUploadUrl:'flashUpload?type=flash' }); </script> <input type="reset" value="重置"/> <input type="submit" value="提交"> </form> </body> </center> </html>
这里鼠标右键点击图片缩略图可以进行下载,如果破解权限后,还可以在文件夹之间互相拖动达到复制粘贴的目的。附件中我破解好的最新版本
当点击文件上传按钮时调用的action就是'imageUpload?type=image',然后结合我以前对struts2文件上传下载的博文中讲到的知识对文件数据进行组织,文件字段这里默认是upload字段,所以在后台可以通过这个字段得到文件类型,文件名和文件二进制数据,最后可以通过IO写入到其他文件夹或者存入数据库即可。
发表评论
-
Struts2远程执行漏洞
2013-01-25 22:44 2089Struts2转码有个bug,可以导致应用挂掉(也可以执行类似 ... -
Struts2整合之动态图表OpenFlashChart
2012-07-06 15:56 2849Java开源项目中制作图表 ... -
Struts2之上传下载和页面渲染图片功能
2012-07-06 15:18 1814Struts2的上传下载是整合了commons-fileupl ... -
Struts2常用的数据标签
2012-06-30 16:24 1446<s:property /> <s:pr ... -
Struts2常用的集合控制标签
2012-06-30 15:56 2010<s:iterator/>迭代器标签 迭代器标签被 ... -
Struts2标签之token防止表单重复提交
2012-06-29 16:57 2098Struts2的token标签防止表单重复提交的思路是这样的: ... -
Struts2常用的UI标签
2012-06-29 17:03 1768<s:textfield />标签的label属性 ... -
Struts2中OGNL、ActionContext和值栈及线程安全浅析
2012-06-27 17:35 3156值栈(ValueStack) Struts2将OGNL ... -
Struts2之OGNL表达式中#,$,%的用法区别
2012-06-25 22:57 2573struts2 井号,星号,百分号 “#”主要有三种用途: 1 ... -
Struts2精萃之interceptor
2012-06-25 01:00 1910下面这段话能完美诠释拦截器的含义: 拦截器是AOP中的概念, ... -
Struts2的服务器端的四种输入校验方式
2012-06-24 16:34 2676Struts2的服务器端验证框架有四种方式校验,一种是利用do ... -
Struts2的客户端校验方式及自带的13种校验器
2012-06-24 16:22 2615如果要使用Struts2的验证框架,首先要开启这个拦截器。在 ... -
Struts2之国际化i18N配置
2012-06-23 19:19 3278在struts2中需要做国际化的有: jsp页面的国际化,a ... -
Struts2之Web应用中文乱码问题的6种解决方法
2012-06-23 17:29 1568在web应用中通常用下面几种方法解决中文问题: 1.HTM ... -
Struts2配置精要之struts.xml( global和default的配置)
2012-06-23 16:48 5056下面这个struts.xml囊括了所有可能用到的标签用法,例如 ... -
Struts2配置精要之常量constant配置详解(包括零配置Convention 的常量)
2012-06-18 02:30 4202这是目前为止收集的stru ... -
Struts2配置精要之Result Types(Struts2.3.4)
2012-06-17 19:36 10424struts2.3.4的Predefined Result ... -
Struts2配置精要之defaultStack与paramsPrepareParamsStack
2012-06-17 17:56 4266在Struts2.3.4的struts-default.xml ... -
Struts2中action接收参数的三种方法及ModelDriven和Preparable接口结合JAVA反射机制的灵活用法
2012-06-17 00:48 4779Struts2中Action接收参数的方法主要有以下三种: ... -
Struts2原理浅析
2012-06-16 16:12 2144JavaEE把MVC设计模式引入 ...
相关推荐
在Struts2中整合CKeditor和CKfinder,主要是为了让用户在编辑内容时能够方便地插入和管理多媒体资源。这个过程涉及以下几个关键知识点: 1. **Struts2配置**:首先,你需要在Struts2的配置文件(struts.xml)中添加...
这使得项目可以在Java服务器环境下运行,如Tomcat、Jetty等,同时也支持Spring、Struts等主流Java框架的整合。 **三、项目特点** 1. **即下即用**:该项目作为一个完整的项目包,下载后可以直接运行,无需复杂的...
在这个"struts下ckeditor4.2+ckfinder2.3.1结合简单demo"中,我们将探讨如何在Struts框架中整合这两个工具以实现高效的富文本编辑和文件管理。 首先,集成CKEditor和CKFinder需要在项目中引入它们的库文件。...
ckeditor3.6.5+ckfinder2.1+struts2的整合,破解方法,有源码,ckfinder.js已经被破解了, 可以直接用。ckfinder和struts2的整合在文档最后。 最新版本的ckfinder我没有找到破解方法, 所以用的2.1版本。 希望可以帮...
**整合CKEditor与CKFinder** 将CKFinder与CKEditor整合,可以实现在CKEditor中直接上传、选择和插入服务器上的文件。这种集成通常涉及以下步骤: 1. **安装CKEditor**:首先,在项目中引入CKEditor的JavaScript库,...
在网上找了半天,看见两偏整合教程不错,把两偏整理成一偏供参考。 别人一个文档就要10分才能下,本人分不多了,扣大家5分来赚取回来。...Ckeditor3.X与ckfinder2.X整合forJAVA (支持文件上传,解决中文乱码)
struts2.3.4.1+hibernate4.1.6+spring3.1.2 整合,全注解例子。数据库用的mysql,数据库会自动生成。整合分页、ckeditor+ckfinder.CK有些问题,上传图片不显示缩略图。
- 如Spring MVC、Struts2等,可以将CKFinder作为一个组件集成到现有的Web应用中,实现更复杂的业务逻辑。 9. **性能优化**: - 了解缓存机制,例如使用Memcached或Redis缓存文件信息,减少数据库查询。 - 优化...
如果你正在使用Java开发Web应用,CKFinder Java 2.6.0会是一个理想的选择,因为它可以轻松地与Spring、Struts、JSF等Java框架整合,让文件管理功能成为你应用的一部分。 至于压缩包中的"ckfinder"文件,这很可能是...