• 知了CMS开发说明文档(ibeetl) 建站系统文档


    三、项目基础

    3.1、前台入口控制器类:

    前台入口控制器类:com.zhiliao.module.web.cms.IndexController

    访问路径:http://127.0.0.1/{frontPath}/1   

    注:  frontPath可在配置文件中配置 默认为front

    3.2、后台入口控制器类:

    后台入口控制器类:com.zhiliao.module.web.system.SystemController

    访问路径:http://127.0.0.1/{adminPath}/login

    注: adminPath也可在配置文件中配置 默认为admin

    3.3、项目配置文件

    配置文件中数据库设置什么的比较简单暂且略过,这里说下比较重要的设置,如下图标出的属性必须根据实际访问地址修改。

    3.4、项目启动与打包

           1)启动: SpringBoot已集成嵌入式tomcat,所以开发阶段直接com.zhiliao.CmsApplication类中main的方法即可启动项目。

            2)打包: 使用 mvn  clean  package  -Dmaven.test.skip 命令打包,在打war包的时候注意不要将嵌入式tomcat打到war包内,需要添加如下下图参数。

          

    四、相关技术

    1. SpringBoot
    2. Mybatis
    3. Mybatis 通用mapper 插件(http://mybatis.tk)
    4. Mybatis  pageHelper 分页插件 (http://mybatis.tk)
    5. Beetl (http://ibeetl.com)
    6. Shiro
    7. Ehcache
    8. Quartz
    9. Druid
    10. B-jui  v1.2(http://www.b-jui.com/)

     

    五、模板标签

    注:模板标签实现类全部位于com.zhiliao.component.beetl.tag.cms包下。

    5.1、栏目列表标签

       <#cms_category_list  siteId="${site.siteId}" categoryId="0" isNav="1" var="bean">

             ${bean.index}

             ${bean.catagoryId}.....(数据库对应字段)

    </#cms_category_list>

    siteId : 站点编号

    CategoryId: 栏目编号

    IsNav:是否导航

    例子:

    <div class="nav menu">
        <ul>
            @if(isNotEmpty(current)&¤t=='index'){
            <li class="on">
            @}else{
            <li>
            @}
            <a href="${baseURL!}">网站首页</a>
            </li>
            <#cms_category_list  siteId="${site.siteId}" categoryId="0" isNav="1" var="bean">
            @if(isNotEmpty(category)&&(category.categoryId==bean.categoryId||category.parentId==bean.categoryId)){
            <li class="on">
                @}else{
            <li>
                @}
                <!--判断当前栏目是否包含子栏目,如果有的话就遍历输出子栏目-->
                @if(isNotEmpty(bean.hasChild)&&bean.hasChild){
                <a href="${bean.url!}">${bean.categoryName!}</a>
                <ul >
                    <#cms_category_list  siteId="${site.siteId}" categoryId="${bean.categoryId!}" isNav="0" var="subBean">
                    <li>
                        <a href="${subBean.url!}">${subBean.categoryName!}</a>
                    </li>
                   </#cms_category_list>
                </ul>
                @}else{
                <a href="${bean.url!}" target="_blank">${bean.categoryName!}</a>
                @}
            </li>
            </#cms_category_list>
        </ul>
    </div>

    效果:

    5.2、栏目标签

    <#cms_category  categoryId="${category.categoryId}" isParent="1" var="bean">

     ${bean.index}

         ${bean.catagoryId}.....(数据库对应字段)

    </#cms_category>

    CategoryId: 栏目编号

    isParent:是否查询父类(1是,0否)

     

    例子:

    <div class="row">
        <div class="n_content">
            <div class="n_lf">
                <#cms_category  categoryId="${category.categoryId}" isParent="1" var="bean">
                <div class="s_title01">
                    <span>${bean.categoryName!,xss}</span>
                </div>
                <ul class="n_lf_list">
                    <#cms_category_list  siteId="${site.siteId}" categoryId="${bean.categoryId!}" isNav="0"   var="bean">
                    @if(isNotEmpty(category)&&category.categoryId==bean.categoryId){
                    <li class="current">
                        <a href="${bean.url!}">${bean.categoryName!}</a>
                    </li>
                    @}else{
                    <li>
                        <a href="${bean.url!}">${bean.categoryName!}</a>
                    </li>
                    @}
                </#cms_category_list>
                </ul>
            </#cms_category>
        </div>

      效果:

    5.3、内容列表标签

    <#cms_content_list  siteId="${site.siteId}" categoryId="213"  orderBy="2" isHot="0"    hasChild="1" isRecommend="0"  size="7"   titleLen="20"   var="bean">

     ${bean.index}

         ${bean.catagoryId}.....(数据库对应字段)

    </#cms_content_list>   

    SiteId: 站点编号

    CategoryId: 栏目编号

    orderBy:排序类型(0,根据cntentId 倒叙,1根据contentId正序,2发布时间倒序,3发布时间正序,4更新时间倒叙,5更新时间正序)

    isHot是否热门(根据浏览量排序)

    hasChild包含子栏目内容

    isRecommend是否推荐内容(0否,1是)

    Size查询的数量

    titleLen标题字数长度

     

    例子:

       <div class="topic_items"   style="height:292px;">
       <ul>
         <#cms_content_list  siteId="${site.siteId}" categoryId="213"  orderBy="2" isHot="0"    hasChild="1" isRecommend="0"  size="7"   titleLen="20"   var="bean">
             <li><a HREF="${bean.url!}"  target="_blank">${bean.title!,xss}</a><span>${bean.inputdate,dateFormat="yyyy-MM-dd"}</span></li>
         </#cms_content_list>
       </ul>
    </div>

    效果:

    5.4、内容列表分页标签(此标签只能在list页面使用)

    <#cms_content_page  siteId="${site.siteId!}"  titleLen="30" page="${page!}" var="content">

         ${bean.index}

         ${bean.title}

         ${bean.catagoryId}.....(数据库对应字段)

    </#cms_content_page>

     

    siteId:站点编号

    TitleLen: 标题字数

     

    例子:

    <div class="content_list">
       <ul>
               <#cms_content_page  siteId="${site.siteId!}"  titleLen="30" page="${page!}" var="content">
                     <li>
                             <a href="${content.url!}" target="_blank">${content.title!,xss}</a>
                             @if(isNotEmpty(content.thumb)){
                                      <span><img src="${resPath}/39z/img/notice_icon.png">(图片)</span>
                              @}
                               <time>${content.inputdate!,dateFormat="yyyy-MM-dd"}</time>
                      </li>
               </#cms_content_page>
       </ul>
    </div>

     

    效果:

     

    5.5、分页标签

         <#cms_pagination siteId="${site.siteId}" categoryId="${category.categoryId}" page="${page}" moreNum="6"  var="page" >

         </#cms_pagination>

    siteId站点编号

    CategoryId: 栏目编号

    Page分页对象(使用mybatis pagehelper pageinfo)

     

    例子:

    <div  class="m-pagination">
          <ul class="m-pagination-page" style="display: block;">
             @if(page.pageNum == 1){
             <li class="first"><a>首页</a></li>
             @}else{
             <li><a href="${ctxPath}/front/${site.siteId}/${category.categoryId}/index_1.html">首页</a></li>
             @}
             <#cms_pagination siteId="${site.siteId}" categoryId="${category.categoryId}" page="${page}" moreNum="6"  var="page" >
             <li>${page.first}</li>

             @for( change in page.changePage){
             @if(!change.isLink){
             @if(change.isMore){
             <li>${change.value!}</li>
             @}else{
             <li class="active">${change.value!}</li>
             @}
             @}else{
             <li> ${change.url!}</li>
             @}
             @}

             <li>${page.next}</li>
              </#cms_pagination>
             @if(page.pageNum == page.pages){
             <li><a>末页</a></li>
             @}else{
             <li><a href="${ctxPath}/front/${site.siteId}/${category.categoryId}/index_${page.pages!}.html">末页</a></li>
             @}
          </ul>
          <div class="m-pagination-jump">
             <div class="m-pagination-group">
                <input type="number"  id="pageNum"><button οnclick="goPageNum()"  type="button">Go</button>
             </div>
          </div>
       </div>
    </div>

     

    效果:

    5.6、友情链接标签

    <#cms_friendlink size="8" groupId="1" var="bean">

             ${bean.index}

    </#cms_friendlink>

         Size:调用数量

         groupId分组编号

       例子:

    <#cms_friendlink size="8" groupId="1" var="bean">
     @if(bean.index<8){
    <a target="_blank"  href="${bean.linkUrl!}">${bean.linkName!}</a> |
     @}else{
    <a target="_blank"  href="${bean.linkUrl!}">${bean.linkName!}</a>
     @}
    </#cms_friendlink>

       效果:

    5.7、面包屑导航标签

       <#cms_site_pos  site="${site}" category="${category}"  var="bean">  
        </#cms_site_pos>

       Site:site对象(index,list,content页面均可获取)

       Category:(content页面均可获取DAO )

      例子:

    <label class="content_bread">
       <img src="${resPath}/3Z/img/pos.png"/>
                          <#cms_site_pos  site="${site}" category="${category}"  var="bean">
                              <span>您当前的位置:${bean.baseURL}</span>
                              <span>></span>
                              @for(location in bean.locations){
                              <a href="${location.url}">${location.categoryName}</a>
                              @if(!locationLP.last){
                              <span>></span>
                              @}
                              @}
                          </#cms_site_pos>
    </label>

    效果:

        

    5.8、模型字段查找标签(支持自定义模型为radio的字段)

     <#cms_modelfiled_find siteId="${site.siteId!}"   categoryId="${category.categoryId!}" modelId="80" filedName="riqi" param="${param!}"  var="filed">

     

    </#cms_modelfiled_find>

    siteId:站点编号

    categoryId栏目编号

    modelId模型编号

    filedName字段名称

    Param查询参数

    例子

    <label class="select">
       日期 :
       <select  id="rqi">
          <option VALUE="">请选择</option>
          <#cms_modelfiled_find siteId="${site.siteId!}"   categoryId="${category.categoryId!}" modelId="80" filedName="riqi" param="${param!}"  var="filed">
          @if(isNotEmpty(param)){
          @var sekected = '';
          @if(isNotEmpty(session.riqi)&&session.riqi==filed.name){
          @sekected = 'selected="selected"';
          @}
          <option value="${filed.url!}" ${sekected} >${filed.name!}</option>
          @}else{
          <option value="${filed.url!}" >${filed.name!}</option>
          @}
       </#cms_modelfiled_find>
       </select>
    </label>

     

    效果:

    六、其他

    6.1、页面变量

       site :当前站点对象(可在index,list,content页面获取到)

       category :当前栏目对象(可在list,content页面获取到)

       content :当前栏目对象(可在list,content页面获取到)

       description: 页面描述(可在index,list,content页面获取到)

       Keywords:页面关键字(可在index,list,content页面获取到)

    6.2、页面常量

        com.zhiliao.component.beetl.BeetlConfiguration   

    6.3、页面Xss处理

       ${bean.title!,xss}

    6.4、页面字符串处理   

       日期格式化:${content.inputdate!,dateFormat="yyyy-MM-dd"}

        字符串处理:http://ibeetl.com/guide/#beetl      

     

  • 相关阅读:
    C#-黑客-数据库访问-字符串的攻击和防御
    C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
    C#把datetime类型的日期转化成年月日或其他格式方法总结
    C#—类库、委托、is和as运算符、泛型集合
    C#-面向对象的三大特性——多态(虚方法与重写、抽象类、接口)
    C#-面向对象的三大特性——继承
    C#-面向对象——如何调用使用类 普通方法、静态方法的使用
    C#-面向对象的三大特性——封装(封装成员变量、封装成员方法)
    面向对象的封装、继承、多态
    如何在HTMl网页中插入百度地图
  • 原文地址:https://www.cnblogs.com/no8g/p/13415568.html
Copyright © 2020-2023  润新知