zoukankan      html  css  js  c++  java
  • Ckeditor一种很方便的文本编辑器

    ckeditor官网: http://ckeditor.com/

    这里介绍ckeditor的其中一个的用法,自己做小项目练手非常的适合,上手非常的快。

    首先去官网下载这个东西,链接:http://pan.baidu.com/s/1nuXePuD 密码:rrr0,需要特别说明一下,这个东西需要配置,但是具体配置我也不是很清楚,所以你看到着篇博客,练习的话,最后使用上面上传的这个东西,目录呢,如图所示。


     1:首先将这个ckeditor文件夹放到webcontent目录下面,然后进行开发。

      使用这个文本编辑器的最重要需要引入的一句话是:

      <script type="text/javascript" src="resource/ckeditor/ckeditor.js"></script>

      然后在需要使用的地方引入这个:class="ckeditor",如下所示:

      <textarea  class="ckeditor" id="newsContent"  name="newsContent"   rows="15"   placeholder="请输入内容">            </textarea>

    完整的代码如下所示,文件名是news.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%
     4     //获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
     5     String path = request.getContextPath();
     6     String basePath = request.getScheme() + "://"
     7                 + request.getServerName() + ":" + request.getServerPort()
     8                 + path + "/";
     9 %> 
    10 <!DOCTYPE html >
    11 <html>
    12 <head>
    13 <base href="<%=basePath%>">
    14 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    15 <title>新闻发布</title>
    16 
    17 <!-- 新 Bootstrap 核心 CSS 文件 -->
    18 <link rel="stylesheet" href="resource/css/bootstrap.min.css">
    19 
    20 <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
    21 <script src="resource/js/jquery.min.js"></script>
    22 
    23 <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    24 <script src="resource/js/bootstrap.min.js"></script>
    25 
    26 <script type="text/javascript" src="resource/ckeditor/ckeditor.js"></script>
    27 </head>
    28 <body>
    29     <div class="container">
    30         <h1 class="page-header">新闻发布</h1>
    31         <form class="form-horizontal" action="newsServlet" method="post">
    32             <div class="form-group">
    33                 <label for="newsMan" class="col-sm-1 control-label">发布人</label>
    34                 <div  class="col-sm-4">
    35                     <input  class="form-control " name="newsMan" id="newsMan" placeholder="请输入发布人"/>
    36                 </div>
    37             </div>
    38             <div class="form-group">
    39                 <label for="newsTitle" class="col-sm-1 control-label">新闻标题</label>
    40                 <div  class="col-sm-6">
    41                     <input  class="form-control " name="newsTitle" id="newsTitle" placeholder="请输入新闻标题"/>
    42                 </div>
    43             </div>
    44             <div class="form-group">
    45                 <label for="newsContent" class="col-sm-1 control-label">新闻内容</label>
    46                 <div  class="col-sm-11">
    47                     <textarea  class="ckeditor" id="newsContent"  name="newsContent"   rows="15"   placeholder="请输入内容"></textarea>
    48                 </div>
    49             </div>
    50             
    51             <div class="form-group">
    52                 <div  class="col-sm-4 col-sm-offset-1">
    53                     <input type="submit" value="发 布 新 闻 " class="btn btn-success btn-lg"/>
    54                 </div>
    55             </div>
    56         </form>    
    57     </div>
    58 </body>
    59 </html>

    2:这个jsp提交到servlet这个页面,完整代码如下所示,当然了,这里没有设计到数据库,因为涉及到数据库,更难理解和讲解,这里学会使用,自己摸索不是很难哦。

    文件名是:NewsServlet.java 

     1 package com.liu.servlet;
     2 
     3 import java.io.IOException;
     4 import javax.servlet.ServletException;
     5 import javax.servlet.annotation.WebServlet;
     6 import javax.servlet.http.HttpServlet;
     7 import javax.servlet.http.HttpServletRequest;
     8 import javax.servlet.http.HttpServletResponse;
     9 
    10 @WebServlet("/newsServlet")
    11 public class NewsServlet extends HttpServlet {
    12     
    13 
    14     private static final long serialVersionUID = 1L;
    15 
    16     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    17         //设置字符编码格式
    18         request.setCharacterEncoding("utf-8");
    19         
    20         //获取从前台传来的参数
    21         String newsMan = request.getParameter("newsMan");
    22         String newsTitle = request.getParameter("newsTitle");
    23         String newsContent = request.getParameter("newsContent");
    24         
    25         //控制台输出测试内容
    26         System.out.println("newsMan:"+newsMan);
    27         System.out.println("newsTitle:"+newsTitle);
    28         System.out.println("newsContent:"+newsContent);
    29         
    30         //将获取的参数保存到request域中
    31         request.setAttribute("newsMan", newsMan);
    32         request.setAttribute("newsTitle", newsTitle);
    33         request.setAttribute("newsContent", newsContent);
    34         
    35         //重定向操作
    36         request.getRequestDispatcher("/index.jsp").forward(request, response);
    37     }
    38 
    39 }

    3:上面的servlet页面又重定向到了index.jsp,如下所示:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%
     4     //获取绝对路径路径 ,开发项目一定要使用绝对路径,不然肯定出错
     5     String path = request.getContextPath();
     6     String basePath = request.getScheme() + "://"
     7                 + request.getServerName() + ":" + request.getServerPort()
     8                 + path + "/";
     9 %> 
    10 <!DOCTYPE html >
    11 <html>
    12 <head>
    13 <base href="<%=basePath%>">
    14 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    15 <title>新闻发布</title>
    16 
    17 <!-- 新 Bootstrap 核心 CSS 文件 -->
    18 <link rel="stylesheet" href="resource/css/bootstrap.min.css">
    19 
    20 <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
    21 <script src="resource/js/jquery.min.js"></script>
    22 
    23 <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    24 <script src="resource/js/bootstrap.min.js"></script>
    25 
    26 <script type="text/javascript" src="resource/ckeditor/ckeditor.js"></script>
    27 </head>
    28 <body>
    29     <div class="container">
    30     <h1 class="page-header">查看新闻</h1>
    31     <form class="form-horizontal" action="newsServlet" method="post">
    32             <div class="form-group">
    33                 <label for="newsMan" class="col-sm-1 control-label">发布人</label>
    34                 <div  class="col-sm-4">
    35                     <p class="form-control-static">${newsMan }</p>
    36                 </div>
    37             </div>
    38             <div class="form-group">
    39                 <label for="newsTitle" class="col-sm-1 control-label">新闻标题</label>
    40                 <div  class="col-sm-6">
    41                     <p class="form-control-static">${newsTitle }</p>
    42                 </div>
    43             </div>
    44             <div class="form-group">
    45                 <label for="newsContent" class="col-sm-1 control-label">新闻内容</label>
    46                 <div  class="col-sm-11">
    47                     <p class="form-control-static">${newsContent }</p>
    48                 </div>
    49             </div>
    50         </form>
    51     </div>
    52 </body>
    53 </html>

    4:特比需要注意的是下面这个servlet,只要复制粘贴会使用即可,可先不用看代码;

     1 package com.liu.servlet;
     2 
     3 import java.io.IOException;
     4 import java.io.PrintWriter;
     5 import java.util.UUID;
     6 
     7 import javax.servlet.ServletException;
     8 import javax.servlet.annotation.MultipartConfig;
     9 import javax.servlet.annotation.WebServlet;
    10 import javax.servlet.http.HttpServlet;
    11 import javax.servlet.http.HttpServletRequest;
    12 import javax.servlet.http.HttpServletResponse;
    13 import javax.servlet.http.Part;
    14 
    15 @WebServlet("/upLoad")
    16 @MultipartConfig
    17 public class UpLoadServlet extends HttpServlet {
    18 
    19 
    20     private static final long serialVersionUID = 1L;
    21 
    22     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    23         request.setCharacterEncoding("utf-8");
    24         
    25         //获取文件的part
    26         Part part = request.getPart("upload");
    27         
    28         //获取请求的信息
    29         String requestinfo = part.getHeader("content-disposition");
    30         System.out.println(requestinfo);
    31         
    32         //获取文件的后缀名
    33         String str = requestinfo.substring(requestinfo.lastIndexOf("."),requestinfo.length()-1);
    34         System.out.println("后缀名:"+str);
    35         
    36         //获取上传文件的目录
    37         String root = request.getServletContext().getRealPath("//upload");
    38         System.out.println(root);
    39         
    40         //重新创建文件名
    41         String filename = UUID.randomUUID().toString()+str;
    42         String url = root+"\"+filename;
    43         System.out.println(url);
    44         part.write(url);
    45         
    46         
    47         //响应
    48         PrintWriter out = response.getWriter();
    49         //获取路径
    50         String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
    51 
    52         String callback = request.getParameter("CKEditorFuncNum");
    53         
    54         out.print("<script>window.parent.CKEDITOR.tools.callFunction("+callback+",'"+basePath+request.getContextPath()+"/upload/"+filename+"') </script>");
    55         
    56         out.flush();
    57         out.close();
    58     }
    59 
    60 }

    5:最后说一下需要注意的地方:

    其一就是如下图所示的config.js文件,这里需要修改一下文件内容

    如下图所示,将ckeditor修改为自己的项目名称即可;

    演示效果:

    还有完善的空间,继续加油哦。别先生

  • 相关阅读:
    Google ObjectiveC Style Guide
    FlvDownloader 2.2发布
    在C#中实现关机
    在.net 2.0/3.0程序中使用扩展方法
    Boost智能指针——scoped_ptr
    二叉查找树
    用C#调用ffmpeg实现媒体类型转换(1)
    FlvDownloader v2.21发布
    发布一款ICO图标和PNG批量转换工具
    在.net中创建外接程序
  • 原文地址:https://www.cnblogs.com/biehongli/p/6485348.html
Copyright © 2011-2022 走看看