• 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;

  • 相关阅读:
    使用numpy生成二维正态分布
    %matplotlib inline的含义
    The following packages will be SUPERCEDED by a higher-priority channel是什么意思?
    conda命令详解
    软件包,API,SDK的区别
    IP组网实验(使用Cisco Packet Tracer路由器模拟软件)
    MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理
    K'ed by TNT team是什么意思?
    使用Applescript、Automator和AfredWorkflow实现流式工作
    Redux源码分析之createStore
  • 原文地址:https://www.cnblogs.com/zht0915/p/4735002.html
Copyright © 2020-2023  润新知