fckeditor-java-2.6中遇到的问题

1.gb2312编码工程中文乱码

解决方法:

(1)重写java-core-2.6.jar包中的ConnectorServlet类

把ConnectorServlet中的代码拷贝到新建的类中,如FckServlet中,修改

doPost 和doGet方法中的

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");



request.setCharacterEncoding("GB2312");
response.setCharacterEncoding("GB2312");

(2)修改web.xml中的配置

<servlet>
  <servlet-name>ConnectorServlet</servlet-name>
  <servlet-class>
   net.fckeditor.connector.ConnectorServlet                -----------修改此处为你重写的类,如FckServlet完整路径
  </servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>ConnectorServlet</servlet-name>
  <!-- Do not wrap this line otherwise Glassfish will fail to load this file -->
  <url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
</servlet-mapping>



2、重命名上传文件

(1)重写java-core-2.6.jar包中的ConnectorServlet类和Dispatcher类,分别命名如:FckServlet和FckDispatcher 也就是将代码拷贝过来

(2)修改FckServlet中的

private transient Dispatcher dispatcher;



private transient FckDispatcher dispatcher;

修改

this.dispatcher = new Dispatcher(getServletContext());



this.dispatcher = new FckDispatcher(getServletContext());

(3)在FckDispatcher类中找到

      List items = upload.parseRequest(request);

        FileItem uplFile = (FileItem)items.get(0);

       String fileName = FilenameUtils.getName(uplFile.getName());

在后面加入

        //修改上传名子
        String extension = FilenameUtils.getExtension(fileName);
        fileName = (new Date()).getTime()+"."+extension; 



(4)修改Web.xml配置

同上面web.xml配置修改一样,这样只用配置FckServlet路径

这样就完成了上传文件名修改,下面要做的就是修改超连接名子,要是不修改的话默认就会显示修改后的上传文件全路径,这样不是很友好

修改方法如下:

(1) 找到fckeditor/dialog/fck_link/fck_link.js文件

找到function CheckUpload()这个方法,大概在850行左右

(2)在这个方法上加入  var currfileName; 用来存放上传本地全路经

(3)在方法中 var sFile = GetE('txtUploadFile').value ;后加入

    currfileName = sFile;

(4) 找到

if ( aHasSelection )
   sInnerHtml = oLink.innerHTML ;这句代码大概在720行左右

在后面加入
   var names = currfileName.split('\\');
   var realName1 = names[names.length-1];
   var realName = realName1.substring(0,realName1.indexOf('.'))
   sInnerHtml = realName;

保有存,现在就运行就可以了


你可能感兴趣的:(java,Web,xml,fckeditor,Glassfish)