struts 的应用

ckediteor 在配置好struts的基础上,再进行配置;关于struts2的配置这里就不在进行重复了。

https://cksource.com/ckfinder/download;

http://ckeditor.com/download  // 这里有三个不同的版本可以使用;

struts2+ckeditor + ckfinder

ckeditor_4.5.3_full.zip

ckfinder_java_2.4.zip

CKEditor 3.6.6.2 for Java

2、拷贝ckeditor

ckeditor_4.5.3_full.zip /ckeditor
3、拷贝ckfinder

CKFinderJava-2.4.war\ckfinder 

拷贝在WebRoot路径;
4、引入jar;

首先引的是ckfinder的jar包。(1)CKFinderJava-2.4.war\WEB-INF\lib 下;

去除两个commons jar;

 (2)ckeditor-java-3.6.6.2.war\WEB-INF\lib 下的ckeditor-java-core-3.5.3.jar

5、引入config.xml修改 

CKFinderJava-2.4.war\WEB-INF 

enabled = true
<baseDir></baseDir>
<baseURL>/ckscxz/userfiles/</baseURL>
6、修改web.xml
配置CKEditor的servlet等信息
struts2拦截 /* ,ckeditor的servlet优先被struts2拦截
二种方式:
1、修改struts2拦截设置 将/* 修改为*.action或*.do
2、自定义CKeditor的过滤器,让它来继承Struts2的过滤器FilterDispatcher
获得完整的http url的地址,然后判断URL地址中是否包含CKEditor的servlet
拦截规则"/ckfinder/core/connector/java /*/",
若包含,struts2就不拦截该URL请求,而直接转发,交给CKEditor的servlet来处理;
若不包含,则拦截器拦截该URL请求,由struts2来处理

7、ckeditor config.js配置
config.language = "zh-cn" ;
config.image_previewText = ' ';

config.filebrowserBrowseUrl = '/ckscxz/ckfinder/ckfinder.html' ;
config.filebrowserImageBrowseUrl = '/ckscxz/ckfinder/ckfinder.html?type=Images' ;
config.filebrowserFlashBrowseUrl = '/ckscxz/ckfinder/ckfinder.html?type=Flash' ;
config.filebrowserUploadUrl = '/ckscxz/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files' ;
config.filebrowserImageUploadUrl = '/ckscxz/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images' ;
config.filebrowserFlashUploadUrl = '/ckscxz/ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash' ;
config.filebrowserWindowWidth = '1000';
config.filebrowserWindowHeight = '700';

---------------关于破解------------------
--图片预览文字替换ckeditor/config.js
config.image_previewText = " ";
-----------------------------------
--ckfinder/ckfinder.js
--浏览服务器左下角信息不展示 下面代码注释
if (!D) this.dV().getChild(0).appendHtml(A || B || y != 4 ? t: u + "\x3c\142\x3e" + k.htmlEncode(a.ed) + "\x3c\057\142\x3e\x3c\x2f\x64\151\166\x3e");
-----------------------------------
--隐藏版权信息
找到<h4 class='message_content'>
改为<h4 style='display:none;' class='message_content'>

-----------------------------------
--避免上传文件乱码,将上传文件名以时间戳命名
解决办法:修改源码FileUploadCommand.class getFileItemName方法

这里讲下struts接收参数的问题;

1.使用Action的属性接收参数;

2.使用DOmainMoedl接收参数;

3.使用ModelDriven接收参数;

String[] s =filepath.split("\\\\"); 用字符串分割地址是这样子的;

regex为\\\\,因为在java中\\表示一个\,而regex中\\也表示\,所以当\\\\解析成regex的时候为\\。 

struts 访问Servlet的API

在Servlet里我们有两个方法doget和dopost方法;

方法里有两个参数;

在Servlet里我们可以直接调用这两个参数;也就是活是存在的;

View Code

再看下struts2的Action的execute方法;

public String execute() throws Exception{
  return SUCCESS;
}
View Code

struts是没有提供任何servlet的api的;但是提供了三种方式去访问servlet API;

01. ActionContext;

02.实现 接口;

03.ServletActionContext;

posted @ 2015-08-16 21:11  坏婷坏婷  阅读(157)  评论(0编辑  收藏  举报