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

news/2024/5/9 16:58:32/文章来源:https://no8gs.blog.csdn.net/article/details/103205521

目录

知了CMS开发说明文档

一、项目介绍

二、项目结构

三、项目基础

3.1、前台入口控制器类:

3.2、后台入口控制器类:

3.3、项目配置文件

3.4、项目启动与打包

四、相关技术

五、模板标签

5.1、栏目列表标签

5.2、栏目标签

5.3、内容列表标签

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

5.6、友情链接标签

5.7、面包屑导航标签

六、其他

6.1、页面变量

6.2、页面常量

6.3、页面Xss处理

6.4、页面字符串处理   


知了CMS开发说明文档

一、项目介绍

     本项目主要使用springboot、mybatis、beetl开发支持多站点,无限级栏目,内容模型、模板标签、全文检索、全站静态化等功能

二、项目结构

三、项目基础

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      

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_806121.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站性能优化:base64:URL传输图片文件

一、base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一&#xff0c;可用于在HTTP环境下传递较长的标识信息。 某人&#xff1a; 唉&#xff0c;我彻底废柴了&#xff0c;为何上面明明是中文&#xff0c;洒家却看不懂嘞&#xff0c;为什么&#xff1f; 好吧…

在网站中使用VideoJs视频播放器播放视频

之前使用videojs用来网页中播放视频&#xff0c;现在做一下总结 &#xff08;这里把插件下载及演示地址、使用方法及demo放出来&#xff09; 视频播放插件Video.js 插件下载地址&#xff1a; http://www.jq22.com/jquery-info404 演示播放视频地址&#xff1a;http://www.jq…

如何注册网站域名?申请域名详细教程

要搭建网站我们就必须要有域名&#xff0c;有了域名别人才可以访问你的网站。域名&#xff0c;是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称&#xff0c;用于在数据传输时标识计算机的电子方位。通俗点就是我们经常说到的网址&#xff0c;不过这种说法…

如何申请阿里云免费SSL证书(可用于https网站)并下载下来

前提条件&#xff1a;你要有阿里云的账号&#xff0c;并且要有一个域名。 注意&#xff1a;阿里云系统也在不断更新&#xff0c;界面以后可能会有稍许变化&#xff0c;但是原理是相通的。 具体步骤&#xff1a; 1.登录到阿里云后台&#xff0c;并选择 “SSL证书&#xff08;应…

【JavaWeb】利用开放平台建设网站生态圈

在互联网时代&#xff0c;把网站的服务封装成一系列计算机易识别的数据接口开放出去&#xff0c;供第三方开发者使用&#xff0c;这种行为就叫做Open API&#xff0c;提供开放API的平台本身就被称为开放平台。通过开放平台&#xff0c;网站不仅能提供对Web网页的简单访问&#…

此网站无法提供安全连接(客户端和服务器不支持一般 SSL 协议版本或加密套件。)

最近访问一部分网站时&#xff0c;出现如下图所示 “ 此网站无法提供案例连接&#xff0c;客户端和服务器不支持一般 SSL 协议版本或加密套件 ” 的问 题。 注意这里显示了非常关键的一句话&#xff0c;xxx使用了不受支持的协议。从这句话入手&#xff0c;很快就查到了原因。原…

网站 smtp服务器,网站smtp服务器

网站smtp服务器 内容精选换一换如果您需要使用创建的云服务器搭建一个对外展示的网站或者Web应用程序&#xff0c;请按以下步骤进行相关的配置操作。建站参考如果您使用的是公共镜像创建的云服务器&#xff0c;那么购买完成后可以参考以下建站指导完成完网站或应用程序的搭建。…

记一次前后端分离网站部署全流程(mysql安装,jdk配置,redis安装配置,elasticSearch配置等..)

阿里云服务器配置 配置ssh秘钥对 到ECS控制台的网络与安全创建秘钥对&#xff0c;并且绑定到你的服务器实例上。 配置实例密码 将之前创建的ssh秘钥对下载至本地&#xff0c;使用xshell连接 配置JDK 使用xftp 将jdk上传至服务器后解压 tar -zxvf jdk-8u201-linux-x64.tar…

添加域名不生效_网站建设:如何给域名做解析

网站制作一年350元&#xff0c;五站合一&#xff0c;快速建站 &#xff0c;www.sxjcwzjs.com,只需进入网站右上角注册快速建站即可(需要电脑登录注册)&#xff0c;需要联系我吧&#xff01;电话&#xff1a;13752214574&#xff0c;微信号&#xff1a;m1078582894域名买好了&am…

腾讯cdn设置 php,教你利用腾讯云 cdn 加速网站静态资源

今天在给 onepoint 更换 js 库的 cdn 时突然想起来&#xff0c;腾讯云每个月还送我 10g 的 cdn 流量包。博客里面有时候会包含很多图片&#xff0c;正好可以把这闲置的资源用上了。平台信息bt(宝塔)、apache2、typecho类型选择cdn 可以选择全站加速&#xff0c;也可以选择只对指…

网络拓扑图画图工具_给你5分钟白漂:这些都是我的常用在线工具和网站

小伙伴们大家好&#xff0c;本期再托一次家底&#xff0c;和大家分享十几个自己日常工作学习过程中的常用在线工具和网站&#xff0c;希望能有帮助。也欢迎小伙伴们分享和安利出你们觉得有用的工具&#xff0c;不要停啊。注&#xff1a;本文 Github开源项目&#xff1a;github.…

网页模板快速建站工具_10款精品Windows工具,值得推荐

接着再来更新10款实用的电脑工具&#xff0c;希望对大家有所帮助&#xff01;以下工具百度搜索名称即可获取下载工具-Aria2Aria2是一个轻量级多协议多平台的开源下载工具。它支持HTTP&#xff0c;HTTPS&#xff0c;FTP&#xff0c;BT 等多种格式下载。它虽然是命令行工具&#…

url获取网站信息不包含网页源文件内的标签_站内SEO:影响优化效果的7个站内因素...

站内SEO是SEO优化的一个极其关键的方面&#xff0c;我们并不是说它比站外SEO更重要&#xff0c;但是您可以完全控制它&#xff0c;因此可以更好地利用它。为了快速回顾&#xff0c;页面上的SEO处理您的网页或网站上的内容&#xff0c;它包括内容&#xff0c;关键词&#xff0c;…

hbuilderx制作简单网页_推荐一款可以把网页打包app的网站和软件(第1期)

可以把网页打包app的软件和网站有很多&#xff0c;今天要推荐的是国产的一款轻巧、极速 10M的绿色发行包。 C架构&#xff0c;启动速度、大文档打开速度、编码提示&#xff0c;都极速响应。强大的语法提示 一流的ast语法分析能力&#xff0c;语法提示精准、全面、细致&#xff…

github怎么用_只需10分钟,构建你的 GitHub 个人网站

很多开发者尤其是前端开发者都希望有一个自己的网站来展示个人信息、简历或者写一些博客。也许你会想到自己买云服务器&#xff0c;然后将开发的网站放上去&#xff0c;但是服务器价格不菲而且对于初学者来说自己部署也比较麻烦。其实想搭建个人网站有 GitHub 就足够了。今天我…

百度 热搜词页面的 js是怎么做的_来宾快手广告渠道,网站关键词优化,热推

首页 > 新闻列表 > 正文作者&#xff1a;佚名 点击数&#xff1a; 6更新时间&#xff1a;2020-11-07 12:19:33 导读&#xff1a;一帆创众网络为您提供来宾快手广告渠道,网站关键词优化的相关知识与详情&#xff1a; 网站作品关键词传播的独创性是搜索引擎基本重要的要求…

服务器被入侵网页后门,谨防“网页后门”,浅谈Webshell入侵网站的原理和预防措施...

正在看手机、电脑或电视的你&#xff0c;是否发现了一个问题&#xff0c;人们对于互联网的依赖程度&#xff0c;让网络几乎已经成了生活中必不可少的东西&#xff0c;不管是生活中还是工作中&#xff0c;它都起着重要的作用&#xff0c;但同样它在给人们带来好作用的同时&#…

css设置logo图片大小,修改ecshop网站logo图片尺寸大小

ecshop里面把logo的尺寸是写固定了的&#xff0c;大概在150*35的样子&#xff0c;如果设计的尺寸偏大&#xff0c;那么就会出现只能显示部分logo的情况&#xff0c;请的合作美工出于漂亮和完整传达意思的考虑&#xff0c;他把我的logo尺寸修改为150*52&#xff0c;这样的话logo…

解决wp的插件all-in-one-seo-pack被百度收录失败的问题

用过wordpress的都应该知道all-in-one-seo-pack插件的强大性&#xff0c;这是一个对网站SEO影响很大的插件&#xff0c;然而&#xff0c;再强大的插件也是有一些不足的地方。这几天我们公司的网站很多页面都没有被百度收录进去&#xff0c;明明已经SEO过了却还是不行&#xff0…

服务器状态监控app,服务器/网站连接状态监控工具

本工具是监听服务器或者网站状态的工具&#xff0c;一次可以批量检测多个IP或者服务器&#xff0c;工具是由概念网络自主开发的&#xff0c;本工具为收费软件&#xff0c;没有免费版本下载&#xff0c;程序是用C#开发&#xff0c;需要.Net Framework 3.5及以上的环境支持&#…