zoukankan      html  css  js  c++  java
  • 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.warckfinder 

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

    首先引的是ckfinder的jar包。(1)CKFinderJava-2.4.warWEB-INFlib 下;

    去除两个commons jar;

     (2)ckeditor-java-3.6.6.2.warWEB-INFlib 下的ckeditor-java-core-3.5.3.jar

    5、引入config.xml修改 

    CKFinderJava-2.4.warWEB-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 + "x3c142x3e" + k.htmlEncode(a.ed) + "x3c57142x3ex3cx2fx64151166x3e");
    -----------------------------------
    --隐藏版权信息
    找到<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;

  • 相关阅读:
    关于android.view.WindowLeaked异常的解决方案
    android 使用shape使android组件呈现特殊效果
    (IOS)N duplicate symbols for architecture i386
    (IOS)国际本地化设置
    URL参数中有 特殊符号或加密数据 的问题解决
    S2S:分享出的营销机遇
    (IOS)Apple 证书相关
    (IOS)阻止文件被iTunes和iCloud同步
    (IOS)多线程开发
    时间复杂度
  • 原文地址:https://www.cnblogs.com/zht0915/p/4735002.html
Copyright © 2011-2022 走看看