Jeecms开发学习笔记

Jeecms开发学习笔记
Jeecms开发学习笔记

Jeecms开发学习笔记

青岛海尔软件有限公司

@带吴钩

目录

1.文档说明 (3)

2. 关键词 (3)

2.1MVC (3)

2.2实体 (3)

2.3实现类 (3)

3. 从Act到Mng到Dao (4)

3.1Act (4)

3.1.1什么是Act? (4)

3.1.2Act实现从html到jspx (4)

3.1.3从Act到Mng (6)

3.2Mng和MngImpl (8)

3.2.1什么是Mng和MngImpl? (8)

3.2.2Mng (9)

3.2.3从MngImpl到Dao (10)

3.3Dao和DaoImpl (13)

3.3.1什么是Dao和DaoImpl? (13)

4. 实体类 (13)

4.1为什么使用实体类? (13)

4.2id的作用 (15)

5配置文件 (16)

5.1数据库配置文件 (16)

5.2国际化 (18)

1.文档说明

本文档来源一个现实项目的学习,笔者须在Jeecms框架内实现前台提交简历,后台查看简历的过程。而笔者毫无java web开发经验。

因此本文档适用于毫无java web开发经验人群,将以Jeecms的spring MVC + spring + hibernate框架为结构进行介绍。建立一个实体,从数据的写入到查找为流程,进行一个详细的描述。

2.关键词

2.1MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

2.2实体

实体类主要是作为数据管理和业务逻辑处理层面上存在的类别;它们主要在分析阶段区分。

实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。

2.3实现类

就是接口的实现类,实现了接口中那些方法的方法体。

3.从Act到Mng到Dao

3.1Act

3.1.1什么是Act?

在我的理解,Act就是接受请求然后执行方法的类,是前台页面和后台处理衔接的类,是重要的类。一般地,注释掉Act下的内容,就失去了衔接的类,我们不需要重新编译实体,Mng,Dao,也不会影响其他的类。这时候,新编译的Act实现与前台的衔接后,就会走到它所注入的Mng,Dao,最后进入表。

3.1.2Act实现从html到jspx

在参照guestbook的时候,你会发现并没有guestbook.jspx这个文件,那么它是怎么来的呢?我们看GuestbookAct.java中下面这段代码:

@RequestMapping(value = "/guestbook*.jspx", method = RequestMethod.GET) public String index(Integer ctgId, HttpServletRequest request,

HttpServletResponse response, ModelMap model) {

CmsSite site = CmsUtils.getSite(request);

FrontUtils.frontData(request, model, site);

FrontUtils.frontPageData(request, model);

CmsGuestbookCtg ctg = null;

if (ctgId != null) {

ctg = cmsGuestbookCtgMng.findById(ctgId);

}

if (ctg == null) {

// 留言板首页

return FrontUtils.getTplPath(request,

site.getSolutionPath(),TPLDIR_SPECIAL, GUESTBOOK_INDEX);

} else {

// 留言板类别页

model.addAttribute("ctg", ctg);

return FrontUtils.getTplPath(request, site.getSolutionPath(),

TPLDIR_SPECIAL, GUESTBOOK_CTG);

}

}

这段代码是一个拦截,用于判断进入哪个guestbook页面(是未登录的guestbook_index 或者guestbook_detail)。

@RequestMapping注解中value的值表示一个请求,guestbook*.jspx表示的是形如guestbookXXX(XXX可以为空).jspx的请求,我们输入一个.../guestbook.jspx的url就相当于发送了这个请求,然后进入由@RequestMapping注解的一个方法。

我们假设这个时候没有留言类别,也就是说ctg==null为true,这时就会

return FrontUtils.getTplPath(request, site.getSolutionPath(),TPLDIR_SPECIAL, GUESTBOOK_INDEX)

在这里site是你设置的site一般与project名一致,TPLDIR_SPECIAL已经配置好了,指的是t文件夹下的special文件,重点说一下GUESTBOOK_INDEX,在Act中,有一个定义代码:

public static final String GUESTBOOK_INDEX ="tpl.guestbookIndex";

那么tpl.guestbookIndex又是什么呢,这个需要在国际化文件中进行配置,两个国际化文件分别是messages_en_US.properties和messages_zh_CN.properties,这里显然已经配置好了,当你要写自己的Act时就需要自行配置了。

于是,我们输入.../guestbook.jspx时,就会走到GuestbookAct这个类,进入这个方法,最后return到这个guestbook_index页面,于是就从html变成了jspx,代码就是这样实现的。

从jspx进行ajax提交我们不多提,只需要稍看guestbook_index就能就能了解。

3.1.3从Act到Mng

依然是参考guestbook,我们看guestbookAct中这样一段代码:

@RequestMapping(value = "/guestbook.jspx", method = RequestMethod.POST) public void submit(Integer siteId, Integer ctgId, String title,

String content, String email, String phone, String qq,

String captcha, HttpServletRequest request,

HttpServletResponse response, ModelMap model) throws JSONException {

CmsSite site = CmsUtils.getSite(request);

CmsUser member = CmsUtils.getUser(request);

if (siteId == null) {

siteId = site.getId();

}

JSONObject json = new JSONObject();

try {

if (!imageCaptchaService.validateResponseForID(session

.getSessionId(request, response), captcha)) {

json.put("success", false);

json.put("status", 1);

ResponseUtils.renderJson(response, json.toString());

return;

}

} catch (CaptchaServiceException e) {

json.put("success", false);

json.put("status", 1);

ResponseUtils.renderJson(response, json.toString());

log.warn("", e);

return;

}

String ip = RequestUtils.getIpAddr(request);

cmsGuestbookMng.save(member, siteId, ctgId, ip, title, content, email, phone, qq);

json.put("success", true);

json.put("status", 0);

ResponseUtils.renderJson(response, json.toString());

}

@Autowired

private CmsGuestbookCtgMng cmsGuestbookCtgMng;

@Autowired

private CmsGuestbookMng cmsGuestbookMng;

@Autowired

private SessionProvider session;

@Autowired

private ImageCaptchaService imageCaptchaService;

Json我们不多做介绍,在Jeecms框架下,想要处理带有验证码提交的数据时,我们可以复制之后稍作修改,方法是平凡的,重点看红色框的部分。

第一个红色框框中用到了cmsGuestbookMng的save方法,下面的

json.put("success", true);

json.put("status", 0);

是关于验证码的信息,在html中的ajax提交方法有如下的判断:

if(data.status==0) {

alert("留言成功");

location.href=location.href;

} else if(data.status==1) {

alert("验证码错误");

$("#guestbookCaptcha").click();

}

显然地,status==0,提交就成功了。

第二个红色框框中用到了@Autowired注解,作用是数据在走Mng接口时bytype自动注入,与@Resource注解的byname形成对照。

这就实现了从Act到Mng,注入后可以使用Mng的save方法。

3.2Mng和MngImpl

3.2.1什么是Mng和MngImpl?

也就是manager接口和实现类,是业务逻辑层的重要的类。在Jeecms中,guestbook是特殊的,他有前端guestbook_index.html存入,有后端guestbook文件夹下3个页面的查询。这就意味着有两个Act会走这个Mng接口,相对的,guestbook的业务逻辑也会比较复杂。

3.2.2Mng

仍然是guestbook,看它的代码:

public interface CmsGuestbookMng {

public Pagination getPage(Integer siteId, Integer ctgId,Integer userId, Boolean recommend,

Boolean checked, boolean desc, boolean cacheable, int pageNo,

int pageSize);

@Transactional(readOnly = true)

public List getList(Integer siteId, Integer ctgId,

Boolean recommend, Boolean checked, boolean desc,

boolean cacheable, int first, int max);

public CmsGuestbook findById(Integer id);

public CmsGuestbook save(CmsGuestbook bean, CmsGuestbookExt ext,

Integer ctgId, String ip);

public CmsGuestbook save(CmsUser member, Integer siteId, Integer ctgId,

String ip, String title, String content, String email,

String phone, String qq);

public CmsGuestbook update(CmsGuestbook bean, CmsGuestbookExt ext, Integer ctgId);

public CmsGuestbook deleteById(Integer id);

public CmsGuestbook[] deleteByIds(Integer[] ids);

public CmsGuestbook[] checkByIds(Integer[] ids,CmsUser checkUser,Boolean checkStatus);

}

这里没什么好说的,就是接口而已,我们不多看重点是下面的实现类。

3.2.3从MngImpl到Dao

Mng红色框框内对应的实现代码如下:

public CmsGuestbook save(CmsGuestbook bean, CmsGuestbookExt ext,

Integer ctgId, String ip) {

bean.setCtg(cmsGuestbookCtgMng.findById(ctgId));

bean.setIp(ip);

bean.setCreateTime(new Timestamp(System.currentTimeMillis()));

bean.init();

dao.save(bean);

cmsGuestbookExtMng.save(ext, bean);

return bean;

}

public CmsGuestbook save(CmsUser member, Integer siteId, Integer ctgId,

String ip, String title, String content, String email,

String phone, String qq) {

CmsGuestbook guestbook = new CmsGuestbook();

guestbook.setMember(member);

guestbook.setSite(cmsSiteMng.findById(siteId));

guestbook.setIp(ip);

CmsGuestbookExt ext = new CmsGuestbookExt();

ext.setTitle(title);

ext.setContent(content);

ext.setEmail(email);

ext.setPhone(phone);

ext.setQq(qq);

return save(guestbook, ext, ctgId, ip);

}

这里必须知道的是,title,content,email,phone,qq是封装进CmsGuestbookExt里的,ctgId是在CmsGuestbookCtg里的,所以在这个实现类中还会有:

private CmsGuestbookCtgMng cmsGuestbookCtgMng;

private CmsGuestbookExtMng cmsGuestbookExtMng;

@Autowired

public void setCmsGuestbookExtMng(CmsGuestbookExtMng cmsGuestbookExtMng) {

this.cmsGuestbookExtMng = cmsGuestbookExtMng;

}

@Autowired

public void setCmsGuestbookCtgMng(CmsGuestbookCtgMng cmsGuestbookCtgMng) {

this.cmsGuestbookCtgMng = cmsGuestbookCtgMng;

}

封装进不同实体有很大的好处,可以防止在字段很多的情况下不会出现因为方法字段不是一一对应的,而出现映射混乱的问题(一般表现为有些字段储存入其他字段,而本身字段为Null)。当然代码也不会繁琐,隐藏bug少,便于数据管理。当然也有其坏处,会使得存储和查询效率降低,但是一般门户流量小,数据少,这些坏处可以忽略。

第二个红色框框标记的部分,是return上一个方法,封装到一个bean,MngImpl这一实现类,存储过程一般最后都要封装进一个bean的。

第一个红色框框走了dao接口,注意下面的代码声明了dao的注入:

@Autowired

public void setDao(CmsGuestbookDao dao) {

this.dao = dao;

}

3.3Dao和DaoImpl

3.3.1什么是Dao和DaoImpl?

也就是dao接口和实现类,是数据访问层的重要的类。因为Jeecms使用hibernate技术,且映射关系并不复杂(针对guestbook来说,包括one to one的guestbookext,many to one 的guestbookctg,但是并不难理解),而且并不需要多么复杂的数据处理。对于小型门户,hibernate就够用了。Dao和DaoImpl与Mng和MngImpl的理解是相似的,不详细介绍了。

4.实体类

4.1为什么使用实体类?

我们找一个简单的例子:

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity

@Table(name="T_USER")

public class User {

@Id

@GeneratedValue(generator="system-uuid")

@GenericGenerator(name = "system-uuid",strategy="uuid") @Column(length=32)

private String id;

@Column(length=32)

private String userName;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

https://www.360docs.net/doc/697037947.html,erName = userName;

}

}

注意到username都是private,而他的get和set方法都是public,这意味这什么呢?外面的方法是无法访问到username的,只有使用get和set方法访问,这样保证了username 的安全性,不会因为代码误编而导致错误。Java就是面向对象编程,这句话大家都是知道的,装进一个实体里,这样就很容编译了,这就是为什么使用实体。

4.2id的作用

再看guestbook的两个实体CmsGuestbook和它的父类BaseGuestbook,关于它的字段以及get和set方法我们就不再赘述,看下面的代码:

public boolean equals (Object obj) {

if (null == obj) return false;

if (!(obj instanceof com.jeecms.cms.entity.assist.CmsGuestbook)) return false;

else {

com.jeecms.cms.entity.assist.CmsGuestbook cmsGuestbook = (com.jeecms.cms.entity.assist.CmsGuestbook) obj;

if (null == this.getId() || null == cmsGuestbook.getId()) return false;

else return (this.getId().equals(cmsGuestbook.getId()));

}

}

public int hashCode () {

if (Integer.MIN_VALUE == this.hashCode) {

if (null == this.getId()) return super.hashCode();

else {

String hashStr = this.getClass().getName() + ":" + this.getId().hashCode();

this.hashCode = hashStr.hashCode();

}

}

return this.hashCode;

}

这段代码定义了id这个字段作为guestbook的标识,没有id则不能封装入库。

5配置文件

5.1数据库配置文件

false

class="identity"/>

Hibernate的映射是非常实用的,从配置文件的简单就可以看出。

5.2国际化

在Jeecms中就是messages_zh_CN.properties和messages_en_US.properties 注意utf-8码转码。

JEECMSv8常用功能所用标签

JEECMSv8常用功能所用标签 发布时间:2016-11-03 15:31:35 作者:本站编辑来源:本站原创阅读次数:4189 1、栏目导航 一级导航条 导航栏目数据获取标签

${base}/ 回到首页标签 ${c.url} 栏目链接 ${https://www.360docs.net/doc/697037947.html,} 栏目名称

多级导航 在一级导航标签体中嵌套以下标签获取二级栏目列表 [@cms_channel_list parentId=c.id] [#list tag_list as c2]

  • ${https://www.360docs.net/doc/697037947.html,}
  • [/#list] [/@cms_channel_list] 说明:c是一级栏目,当然也这里的参数parentId也可以指定id tag_list是数据集合,name栏目名称,url栏目链接 2、栏目当前位置

    您的位置:首页 > [#list channel.nodeList as n]${https://www.360docs.net/doc/697037947.html,}[#if n_has_next] > [/#if][/#list] >

    jeecms_3.0+标签的使用

    JEECMS 标签使用 页面模板包含标签 [#include "../include/header_register.html"/] 常用链接地址 专题 TAG 搜索 RSS 默认文章缩略图调用 ${ctt.imgUrl!site.defImg} 字符串长度截断标签 [@text_cut s=title len=titLen append=append/] 【s】需要截断的字符串,tit为字符串对象 【len】目标长度,titLen可以是其它标签中传递过来的参数【append】截断后显示的字符,append可以是其它标签中传递过来的参数 栏目节点列表标签(用于获取页面导航路径) [#list channel.nodeList as n] ${https://www.360docs.net/doc/697037947.html,}
    [/#list] jeecms v3.x标签教程之[@cms_channel_list] 作者: 发布日期:2010-09-06 12:06:39 查看次数:62 次

    摘要: 【标签名】:[@cms_channel_list/] 作用:显示各栏目列表 参数: parentId:存在时,获取该栏目的子栏目,不存在时,获取顶级栏目 siteId:站点ID。存在时,获取该站点顶级栏目,不存在时获取当前站点顶级栏目。(仅在parentId不存在时起作用) hasContent:是否只获取可以有内容的栏目。【0:获取所有;1:只获取可以有内容的栏目】(默认0) 【tplSub】自定义栏目模板后缀 linkClass:链接class style:标签内部样式。如果指定sysContent或userContent,则该项无效。【1:普通链接列表;】(默认1) sysTpl:使用系统模板。【0:不使用;1:使用】(默认1) sysContent:系统内容样式。(默认0) userContent:自定义内容样式。如果指定了系统内容样式,则该项无效。(默认0)sysPage:系统分页样式。【0:不分页;1:样式一;2:样式二】(默认0) userPage:自定义分页样式。如果指定了系统分页样式,则该项无效。【0:不分页;1:样式一;2:样式二】(默认0) custom:字符串数组。用于个性化处理。(默认空数组) 【备注】:在代码模式下编辑,各属性值必须使用单引号,属性排列顺序不分先后。示例: [@cms_channel_list tpl='1'/] jeecms v3.x标签教程之[@process_time/] 作者: 发布日期:2010-09-16 09:53:37 查看次数:32 次 摘要: 页面处理时间标签 作用:显示处理某个页面所需要的时间 示例: [@process_time/] 结果:

    JeeCMS技术白皮书

    JEECMS内容管理系统技术白皮书

    目录 第1章概述................................................................................................... 错误!未定义书签。 1.1. 公司简介........................................................................................ 错误!未定义书签。 1.2. 系统部分典型成功案例 (2) 第2章项目介绍 (2) 2.1. 关于JEECMS (2) 2.2. JEECMS系统特点 (4) 2.3. 主要用户 (4) 2.4. 技术架构 (6) 2.4.1. 跨操作系统平台 (7) 2.4.2. 跨数据库平台 (7) 2.4.3. 跨应用服务器 (7) 2.4.4. 兼容多种浏览器 (7) 第3章系统核心功能预览 (7) 3.1. 缓存管理 (7) 3.2. 文章栏目管理 (8) 3.3. 栏目模型管理 (8) 3.4. 文章内容管理 (9) 3.5. 内容属性管理 (11) 3.6. 文档维护 (11) 3.7. 模板管理 (12) 3.8. 模板方案管理 (13) 3.9. 资源管理 (14) 3.10. 辅助系统管理 (14) 3.11. 站点管理 (15) 3.12. 功能菜单管理 (16) 3.13. 角色管理 (16) 3.14. 用户管理 (17) 3.15. 管理员管理 (17) 3.16. 会员组管理 (18) 3.17. 会员管理 (18) 3.18. 附件管理 (19) 3.19. 网站配置 (19) 3.20. 系统设置 (20) 3.21. 辅助设置 (21) 第4章系统标签灵活性预览 (21) 4.1. 普通文章列表样式 (21) 4.2. 图文显示样式 (22) 4.3. 焦点图显示样式 (22) 4.4. 自定义显示标签 (23) 第5章系统可扩展性介绍 (24) 第6章系统报价及相关服务 (24)

    JEECMS开发文档

    1.在myeclipse中新建一个项目jeecms,将服务器中jeecms项目下web-inf文件夹下内容拷到新建项目中 2.解压缩jeecms- 3.0.2-final-src,在src文件夹下会看到有三个压缩文件,如果只想进行普通的二次开发,可以只导入cms这个源码,删除j eecms-cms-identity-3.0.2-final.jar即可,如果想进行深入的二次开发,需要导入common和core源码,另导入common-lib下的jar包,删除jeecms-cms- identity-3.0.2-final.jar,jeecms-common-3.0.2-final.jar ,jeecms-core- identity-3.0.2-final.jar这三个jar包,切记:务必进行build path 3.修改jdbc链接,自己导入数据库。 4.把服务器下install\config下的web.xml复制出来覆盖掉新建项目WEB-INF下的web.xml 5.classes下有四个文件,手动烤到myeclipse项目src根目录下中 6.将服务器上jeecms项目删掉,发布新建的jeecms项目。 首页的加载过程: 在浏览器中输入http://localhost:8080/jeecms,回车 首先进入配置文件web.xml, contextConfigLocation /WEB-INF/config/application-context.xml /WEB-INF/config/cache-context.xml /WEB-INF/config/captcha-context.xml /WEB-INF/config/jeecore-context.xml /WEB-INF/config/jeecms-context.xml 应用范围内的初始化参数 其中jeecms-context.xml是对标签的初始化 index.html index.shtml index.jhtml 通过以上标签找到应该加载哪一个页面 JeeCmsFront org.springframework.web.servlet.DispatcherServlet

    浅谈敏捷项目管理在软件开发中的应用

    浅谈敏捷项目管理在软件开发中的应用 摘要:本文先介绍了使用传统项目管理技术管理软件开发项目的方法,然后介绍了使用敏捷项目管理的初步实践,通过两者比较,提出了使用敏捷项目管理进行软件开发的方法。 一、使用传统项目管理技术管理软件开发项目的方法 按照《人月神话》的说法,软件开发是个焦油坑,书店里关于软件开发管理的书籍林良满目,各个软件开发组织也在尝试和应用不同的软件开发管理办法,希望寻找到“软件开发的银弹”。 在软件开发管理中,引入项目管理的办法,已经得到广大软件开发管理人员的一致认同,但对于具体实施何种项目管理办法,各个软件开发组织都有不同的答案,更多的迷茫,因为引入的项目管理办法不能从根本上解决软件开发项目面临的进度拖后、费用超支等问题,软件开发的银弹到底在哪里? 以下是笔者对国内软件开发组织不同项目管理成熟度的归纳和总结,大概可以分如下几类;1)小作坊、混沌形的,这样的组织还处在接单求生存的阶段,管理者还根本没有项目的意识,以满足客户需求、定制开发和回款为第一要务;2)尝试按照项目管理的思路与方法管理软件开发项目,但发现推

    行困难,不得要领,目前很多中小型的软件开发组织都处于这个阶段;3)大型的软件企业,已经通过CMM|ISO认证、有足够的资源做保障,实行规范的项目管理做法,如一些软件外包工厂。 本文主要讲述处于第二个层次的软件开发组织的项目管理问题。软件开发项目管理涉及非常多的内容,从软件开发本身的业务出发,有需求管理、变更控制、配置管理、测试管理、系统分析与设计等;从项目管理的知识领域角度,有范围管理、时间管理、沟通管理、人力资源管理等内容。 按照传统的经典项目管理方法,通过一定的项目管理模板与IT工具,总结多个项目的经验,笔者总结有如下经典步骤来完成项目管理的计划编制与进度控制过程: 计划编制的经典步骤: ①建立企业和项目资源库:这个是进行项目管理的基础工作。 ②设置项目日历、资源日历。 ③设置项目的主要里程碑点。 ④在WBS(工作包)下列出工作清单(Task,Activity)。工作分解结构(WBS)和作业是进行项目范围管理的途径。 ⑤对每个Task估计工期。 ⑥连接每个Task间的逻辑关系(SS,FS,FS,FF,延时)。

    jeecms安装、配置文件说明

    一 Jeecms安装过程 将解压后得到的jeecms-3.0.2-final文件夹下的root文件夹更名为jeecms拷贝到tomcat 安装目录下的webapps 文件夹下(例 如: D:\Tomcat 6.0\webapps\),启动tomcat,在地址栏中输入 http://localhost:8080/jeecms,您将看到第一步安装过程中的《用户许可协议》,勾选“我已经阅读并同意此协议”,点击下一步,接下来第二步安装过程中设置系统参数,系统会自动检测出一些配置项,请根据您的实际情况填写,数据库密码不能为空。点击提交后进入第三步进入最后的系统安装过程,安装过程可能需要十几秒的等待时间。安装成功后将提示信息,请再重启Tomcat 完成安装。 Tomcat重启完毕之后,在浏览器的地址栏中输入 http://localhost:8080/jeecms, 若系统正常显示默认的站点首页则表示JEECMS 已经顺利安装完成. 附: 系统管理后台登录: http://localhost:8080/jeecms/jeeadmin/jeecms/index.do 用户名:admin 密码:password 图文安装步骤如下: 将解压后得到的ROOT文件夹拷贝到tomcat安装目录下的webapps文件夹下(例如:D:\Tomcat 6.0\webapps\),启动tomcat,在地址栏中输入 http://localhost:8080,您将看到第一步安装过程中的《用户许可协议》,如图一所示,勾选“我已经阅读并同意此协议”,点击下一步,

    图一:用户许可协议 接下来第二步安装过程中设置系统参数,系统会自动检测出一些配置项,请根据您的实际情况填写,如图二所示,数据库密码不能为空。

    jeecms 标签详细使用说明教程文件

    J e e c m s2012标签详细使用说明

    JEECMS V2012标签说明文档 目录 [@cms_tag_list] Tag列表标签 (3) [@cms_lucene_list] 搜索结果列表标签 (4) [@cms_lucene_page] 搜索结果分页标签 (6) [@cms_Include] 页面模板包含标签 (8) [@cms_guestbook_list] 留言列表标签 (9) [@cms_content_page] 文章列表分页标签 (10) [@cms_content_list] (12) [@cms_Content] 文章对象标签 (16) [@cms_topic_page] 专题分页标签 (17) [@cms_topic_list] 专题列表标签 (19) [@cms_vote] 投票标签 (20) [@cms_comment_page] 评论分页标签 (22) [@cms_comment_list] 评论列表标签 (24) [@cms_channel] 栏目对象标签 (26) [@cms_channel_list] 栏目列表标签 (28) [@cms_pagination/]参数:sysPage 分页 (29) [@process_time/]页面处理时间标签 (31)

    [@cms_tag_list] Tag列表标签 Tag列表标签 作用:显示tag列表 示例:

    热门tags: [@cms_tag_list count='8'] [#list tag_list as tag]${https://www.360docs.net/doc/697037947.html,}[#if tag_has_next]|[/#if][/#list] [/@cms_tag_list]

    jeecms开发指南v1.0

    1.1. 关于JEECMS JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称,是一款自主研发的基于J2EE平台的内容管理系统Java凭借其强大、稳定、安全、高效等多方面的优势,一直是企业级应用的首选。在国外基于JavaEE技术的CMS已经发展的相当成熟,但授权费昂贵,一般需几十万一套;而国内在这方面一直比较薄弱,至今没有一款基于JavaEE 技术的开源免费CMS产品。 JEECMS使用目前java主流技术架构: hibernate3+struts2+spring2+freemarker。AJAX使用jquery和json实现。视图层并没有使用传统的JSP技术,而是使用更为专业、灵活、高效freemarker。数据库使用MYSQL,并可支持orcale、DB2、SQLServer等主流数据库。应用服务器使用tomcat,并支持其他weblogic、websphere等应用服务器。 JEECMS并不是一个只追求技术之先进,而不考虑用户实际使用的象牙塔CMS。系统的设计宗旨就是从用户的需求出发,提供最便利、合理的使用方式,懂html就能建站,从设计上满足搜索引擎优化,最小性能消耗满足小网站要求、可扩展群集满足大网站需要。 很多人觉得java、jsp难掌握,技术门槛高。jeecms具有强大的模板机制。所有前台页面均由模板生成,通过在线编辑模板轻松调整页面显示。模板内容不涉及任何java和jsp技术,只需掌握html语法和jeecms标签即可完成动态网页制作。 强大、灵活的标签。提供两种风格的标签,一种风格的标签封装了大量互联网上常见的显示样式,通过调整参数就可实现文章列表、图文混排、图文滚动、跑马灯、焦点图等效果。这种标签的优势在于页面制作简单、效率高,对js、css、html不够精通和希望快速建站的用户非常适用。并且各种效果的内容不使用js 生成,对搜索引擎非常友好。另一种风格的标签只负责读取数据,由用户自己控制显示内容和显示方式,想到什么就能做到什么,对于技术能力高和追求个性化的用户,可谓如鱼得水。 天然的伪静态页面技术,无需多余的urlrewrite。考虑到对搜索引擎的友好,系统在设计时就使用了伪静态页面技术,以.htm作为url地址后缀,扁平的、可自定义的路径结构。对于有特别需求者,可自定义页面后缀,如.php,.asp,.aspx 等。 站群设计。对于大型的网站,往往需要通过次级域名建立子站群。各个子站后台管理权限可以分离,前台用户实现单点登录。大规模网站轻松建设。 1.2. JEECMS系统特点 ?系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良 好的学习平台; ?核心模板全部使用文件形式保存,自由导入/导出模板,极大方便了用户 模板设计、网站升级转移、全站换肤; ?首页、栏目页缓存处理,在启动了页面缓存后,有利于提高系统反应速

    敏捷软件开发

    敏捷软件开发:SRP单一职责原则 (2009-03-24 20:30:24) 转载 标签: it 这条原则实际就是体现内聚性原则的体现,一个模块的组成元素之间的功能相关性。把内聚性概念扩展一下:把内聚性和引起一个模块或者类改变的作用力联系起来。 一个类应该只有一个发生变化的原因。若Game类有2个不同的职责,一个是记录当前轮,另一个式计算分数,最后要把这两个职责分离到两个类中。为何把这两个职责分在单独的类中呢?因为每个职责都是变化的一个轴线,当需求变化会反映为类的职责的变化。如果一个类承担了多于一个职责,那么引起它变化的原因就会有多个。 如果一个类承担的职责太多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合或导致脆弱的设计,当变化发生时,设计会遭受到预想不到的破坏。 定义职责:如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,有时候我们很难注意到这点,我们习惯以组的形式去考虑职责。 public interface Modem{ public void Dial(String pno); public void Handup(); public void Send(char c); public char Recv(); } 接口包括了2个职责,第一个职责是连接管理,第二个职责是数据通信。 如果应用程序的变化方式总是导致这两个职责同时变化,那么就不要分离他们,分开他们就会有不必要的复杂性味道。仅当变化发生时,变化的轴线才有实际意义,如果没有征兆,那么应用SRP或者任何其他原则都是比明智的。 分离耦合的职责:经常会有一些和硬件或者操作系统的细节有关的原因,迫使我们把不愿意耦合在一起的东西欧和在一起了。然而,对于应用的其余部分来说,通过分离他们的接口我们已经解耦概念。 如果ModenImplementation implemet DataChannel,Conection。ModenImplementation看起来是一个混杂物,或者有缺陷的类,所有的依赖关系都是从它发出来的。谁都不需要依赖它,谁都不需要知道它的存在。因此,我们已经把丑陋的部分隐藏起来了。其丑陋性不会泄露出来,污染应用程序的其它部分。 持久化:如Emplyee:CalculatePay,Store,Emplyee类包括了业务规则和对于持久化的控制,这两个职责在大多数情况下绝不应该混合在一起。业务规则往往会频繁地变化,而持久化的方式却不会如此频繁的变化,并且变化的原因也不一样。把持久化系统和业务规则绑定在一起是自讨苦吃的做法。如果发现这种情况存在了,应该使用FACADE、dao或者proxy模式对设计进行重构,分离这两个原则。 SRP是所有原则中最简单的原则之一,也是最难正确运用的原则之一。

    jeecms模板标签说明

    JEECMS 模板标签说明

    目录 第 1 章INCLUDE标签........................................................................................... 错误!未定义书签。 第1.1节功能简介 (3) 第1.2节标记说明 (4) 第 2 章ARTILIST标签 (4) 第2.1节功能简介 (4) 第2.2节标记说明 (4) 第 3 章POSITION标签 (7) 第3.1节功能简介 (7) 第3.2节标记说明 (8) 第 4 章CHNLLIST标签 (8) 第4.1节功能简介 (8) 第4.2节标记说明 (8) 第 5 章内容页常用标签 (10) 第5.1节标记说明 (10) 第1 章模板规划 第1.1节资源文件 资源文件就是网页中用到的图片、CSS、JS等元素,在CMS系统中所有的资源文件在网站的根目录中的 /res_base/所属网站定义资源目录/TEMPLEA TE/WEB /res_base/所属网站定义资源目录/TEMPLEA TE/WAP 解释:网站定义资源 在CMS系统中可以同时管理多个网站,也就是多个网站可以同时使用一套CMS系统,但是每一个网站都已属于自己独立的资源文件及模板文件目录。

    定义了页面显示的主体框架,它的位置位于网站根目录下的/WEB_INF/user_base/所属网站模板目录; 模板规则: 以index前缀命名的为首页模板 以channel前缀命名的为栏目模板 以content前缀命名的为内容模板 以alone前缀命名的为栏目单页模板 第1.3节使用方式 1.使用dw建立站点 2.将网页中用到的资源文件分类分别放置到网站相关资源目录中 3.将模板文件放置按照命名规则分别放置到网站相关模板目录中。 4.将头部、底部等等具有通用元素的模板文件放置到模板目录中的include目录中 5.将模板文件中所有资源引用改为绝对路径链接至资源目录中 6.在栏目管理中将模板文件与栏目进行关联设置 7.在模板文件中需要提取数据的位置放置相应的标签 第2 章Include标签 第2.1节功能简介 过网站设计经验的朋友可能都知道,我们可以将页面中经常要引用的公共部分(比如页头和页脚)独立开来,单独存放在一个页面中。这样做的好处就是可以在各个需要用到该部分的页面中用一个简单的包含语句就能把它引入进来,大大简化了工作量。

    jeecms二次开发必备

    JEECMS二次开发 第1章JEECMS系统介绍 (3) 1.1关于JEECMS (3) 1.2JEECMS系统特点 (4) 1.3技术架构 (4) 1.3.1跨操作系统平台 (5) 1.3.2跨数据库平台 (5) 1.3.3跨应用服务器 (6) 1.3.4兼容多种浏览器 (6) 1.4JEECMS工程的包结构分析 (7) 1.4.1文章模块 (7) 1.4.2辅助模块 (7) 1.4.3通用操作模块 (7) 1.4.4核心功能模块 (8) 1.4.5下载模块 (8) 1.5页面、资源文件结构 (9) 1.5.1站点内容、模板结构 (10) 1.5.2站点资源文件结构 (10) 第2章标签使用和模板的制作 (11) 2.1模板规划 (11) 2.1.1资源文件 (11) 2.1.2模板文件 (11) 2.1.3使用方式 (11) 2.1.4标签调用样式 (11) 2.2I NCLUDE标签 (13) 2.2.1功能简介 (13) 2.2.2标记说明 (13) 2.2.3 明确标签的使用范围 (13) 2.2.4调试标签了解其使用方法 (13) 2.3A RTI L IST标签 (15) 2.3.1功能简介 (15) 2.3.2标记说明 (15) 2.3.3 明确标签使用范围 (18) 2.3.4 调试标签了解其使用方法 (18) 2.4P OSITION标签 (20) 2.4.1功能简介 (20) 2.4.2标记说明 (20) 2.5C HNL L IST标签 (21) 2.5.1功能简介 (21)

    2.5.2标记说明 (21) 2.5.3明确标签的使用范围 (21) 2.5.4调试标签了解其使用方法 (22) 2.6内容页常用标签 (23) 2.6.1标记说明 (23)

    详细设计说明书-模板

    {项目名称} 详细设计说明书

    {项目名称}详细设计说明书 版本历史

    目录 1. 引言 (1) 1.1编写目的 (1) 1.2项目背景 (1) 1.3参考资料 (1) 2.1 项目现状 (2) 2.2建设目标 (2) 2.3建设内容 (2) 2.4功能需求 (2) 2.5非功能需求 (2) 3. 总体设计 (3) 3.1体系结构 (3) 3.2逻辑架构 (3) 3.2.1分层架构模型 (3) 3.2.2组件架构模型 (3) 3.2.3数据流转模型 (4) 3.3包结构设计 (4) 3.3.1......包介绍 (4) 3.3.2......包介绍 (5) 3.3.3......包介绍 (6) 3.3.4页面资源介绍 (6) 3.3软件功能结构设计 (8) 3.4系统运行环境 (9) 3.5标准性与扩展性 (9) 4.功能设计 (11) 4.1......功能设计 (11) 4.1.1业务流程设计 (11) 4.1.2功能概述 (11) 4.1.3主要功能模块设计 (11) 5.非功能性设计 (11) 5.1系统接口设计 (11) 5.1系统集成设计 (11) 5.2系统配置设计 (11) 5.3系统安全设计 (11) 5.4系统部署方案设计 (11)

    1. 引言 1.1编写目的 本文档描述了维护审批程序设计人员对该程序总体框架的设计方案,用于指导程序开发人员进行编码设计开发,并且帮助后续升级维护人员了解掌握该程序的设计思路。用户也可以通过该文档更深一步的了解该程序。 1.2项目背景 1.3参考资料 ●《……项目项目任务书》2014-06-01 ●《……项目任务书-1.0版》2013-11-18

    Jeecms二次开发相关文档(入门)

    Jeecms二次开发相关文档(入门) 目录: (本文档中内容整理自网络并结合自己实际开发经验总结而来,文档后有相关内容引用出处,本处声明免责,不承担任何纠纷,文档供大家交流使用) Jeecms二次开发相关文档(入门) (1) 一、jeecms内部请求转发运行原理 (2) 二、jeecms使用freemarker标签示例及原理 (4) 1、标签使用示例 (4) 2、标签原理 (4) 3、自定义标签(实例演示说明标签用法) (7) 三、在MyEclipse工作环境中构建jeecms项目 (10) 1、搭建Jeecms的运行环境 (10) 2、安装jeecms演示系统 (10) 3、导入Jeecms项目 (10)

    一、jeecms内部请求转发运行原理 Jeecms中有众多的配置文件,单xml配置文件就相当繁多,各个文件间的关联查找使用关系也不像简单的struts配置文件一样。如首页的显示过程如下。 系统架构是ssh+freemarker模板构成的,所以先要熟悉freemarker模板技术。 先看web.xml文件,其中欢迎页面有: index.jspa index.do index.html 接着再看jeecms/core/struts-core-front.xml配置文件,发现有个action的通用配置: ${namespace} ${actionName} struts收到请求以后,将请求转发到core.dynamicSystemAct这个对象,注意这个这个class并不是真正的类,是类的别名,由spring通过标注@Controller进行绑定,web应用上下文可以通过classpath自动扫描到这个类。 @Controller("core.dynamicSystemAct") public class DynamicSystemAct

    开源CMS内容管理系统整理文档

    西安睿通信息技术有限责任公司 XXX项目文档模板 文档ID:XXX-XXX-XX CMS内容管理系统整理文档 版本号:1.0

    修订历史记录 日期版本说明作者 2011-8-16 1.0 开源CMS的整理文档说明赵维博 这两天找了几个开源的CMS文件管理软件,部署运行后也看了看,做了一下比较。功能上还是有很大差别的。 搜集了一下开源的CMS,并对其功能做了一下简单的了解。很多开源的CMS是没有源码的,只找到了一个国内的CMS是有源码的。国外的CMS也看了看,因为网络的问题,很多开源的CMS根本下载不下来。就可能在开源CMS基础上的二次开发来看,目前只能选择JeeCMS了,因为能有源码,其他没有源码,功能强大也没用。 就了解到的CMS来看,内容管理系统是一种位于Web前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”还包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布 到互联网中的信息。 一个内容管理系统通常有几个要素:文档模板、脚本语言或标记语言、与数据库集成。内容的包含物有内嵌入页面的特殊标记控制。这些标记对于一个内容管理系统通常是唯一的。 所以要很多大型网站的内容管理系统都是定制开发的。因此要利用开源的CMS,必须在此基础上做二次开发,定制属于自己网站的模板。对此我还没有深入了解,现在只是针对其功能的了解和使用,因为很多CMS都用到了其他技术,用java语言开发的国内很少,国外还多一点,但都不是单一技术的开发,用到了很多其他的开源框架等。如果要做二级开发,技术的成本也必须考虑在内。 如果要在开源的CMS上做适合自己企业网站的内容管理系统,那么定制模板和用户注册等应用集成在一起,就是我们在二次开发时必须要实现的。 下面是在了解了几个CMS后,对几个开源CMS系统功能的列表: JeeCMS系统功能列表: a) 首页静态化,栏目静态化,内容页静态化 b) 是栏目管理功能,能添加修改删除一级栏目内容,个数。修改栏目访问路径,添加子栏目。 c) 是内容管理,内容发布,审核,不同用户审核权限 d) 是模板管理,添加、修改、删除模板,导入导出模板, e) 资源管理,创建,上传资源,新建目录等,如图: f) 评论管理,页面可以发表评论,后台可以修改,删除评论,

    jeecms二次开发

    jeecms二次开发

    目录 1. jeecms二次开发 (2) 1.1 jeecms二次开发简要说明文档之概述篇 (2) 1.2 jeecms二次开发简要说明文档之开发篇 (2) 1.3 jeecms部署到linux上保存文章出错 (6) 1.4 jeecms二次开发总结 (6)

    1. jeecms二次开发 1.1 jeecms二次开发简要说明文档之概述篇 在学校时就知道jeecms,那时也仅仅是在本地架上java环境安装玩玩,没有进行仔细的研究。工作后才开始仔细的研究jeecms的源代码,作为国内为数不多的开源产品,其源代码有很多的可圈可点之处,但总觉得其开源的力度远远不够,在我的理解下不算是真正的开源,其二次开发的说明文档太少,官方也仅仅是给出标签的使用说明。 首先要说明的是本文仅仅讲的是jeecms-2.3.2-final版下的二次开发,jeecms最新版是jeecms v3.0 beta版,听说进行了重构,目前放出的是安装版,很希望jeecms官方赶快放出源代码,好再次研究研究。 下面曹海峰将从四个方面讲述jeecms的二次开发。 1、文件结构 主要讲述css样式文件、图片、js、模板、jeecms标签等的放置路径。 2、模板 模板的路径、命名规则等。 3、标签的使用 官方标签,以及二次开发时如果自定义标签。 4、开发流程 进行二次开发时整个流程的一个简要介绍。 1.2 jeecms二次开发简要说明文档之开发篇 前段时间曹海峰介绍了jeecms的二次开发,但没有具体讲怎么对jeecms进行二次开发,今天补上。整理的很凌乱,但对于jeecms的二次开发肯定没什么问题了。 一、文件结构 网站css样式,图片,js的放置路径:WebRoot/res_base/ Html页面如何引用:${root}就是WebRoot/res_base/的路径 实例: 1${root}/fgw/article/css/common.css 前台模板放置路径:WebRoot/WEB-INF/user_base/template,文件夹是对应的模块名称,一定要和每个Constants.java下的常量名相同,否则会说找不到页面。

    jeecms网站开发技术文档

    xxxxx网技术说明文档 一、系统架构特点 1)底层采用高性能的MVC技术架构:系统采用最新的技术架构 (SpringMVC3+Spring3+Hibernate3+Freemarker),AJAX使用jquery和json实现。基于java 技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点。 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建Web 应用程序的全功能MVC 模块。使用Spring 可插入的MVC 架构,可以选择是使用内置的Spring Web 框架还可以是Struts 这样的Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 SpringMVC3特性: ? 零配置,不需要外部配置文件,这是SpringMVC3最引人注目的特性。 ? 易于同其它View框架(Tiles等)无缝集成 ?采用IOC便于测试 ? 强大、灵活的标签,用户自定义显示内容和显示方式。 ? 验证和类型转换机制非常容易使用和本地化。 ? 良好的本地化支持,甚至在JSP 页面之间跳转时仍然生效。 ? 后台人性化,提供最便利、合理的使用方式。 ? 在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性。 ?完全生成全站静态页面,可自定义路径结构,全面提高页面访问速度 ? 内置支持同一个form 触发多个事件。 ? 具备透明的文件上传能力。 ? 支持增量开发。

    敏捷开发过程中如何开发高质量的软件

    .、八、- 刖言 什么是软件质量?很多技术同仁都认为软件质量是软件是否存在Bug,是否性 能高,安全性好等等。其实软件质量的含义远多与此。质量就是软件产品对于 某个(或某些)人的价值;价值是指创造利润,又或是降低成本。总的来说, 软件质量是软件的灵魂和存在意义。另外,我们知道现在敏捷开发日趋流行, 其实敏捷开发也是顺应市场的对价值的诉求和日益复杂的业务而产生的方法论, 敏捷开发是追求高质量软件的方法论和过程。 本文将和大家一起探讨软件质量的含义,以及敏捷开发中如何进行高质量软件 的开发。 软件质量的理解 首先,我们先来看看什么是软件产品质量?先有了软件质量定性的了解,才能 介绍如何影响、控制和改进质量。 大师温伯格在《质量?软件?管理系统思维》说到:“质量就是软件产品对于 某个(或某些)人的价值”(某个或某些人文章中统称之为用户),这里面包含两个层次的质量含义,即“正确的软件”及“软件运行正确”: 1.“正确的软件”是说,一个软件要能够满足用户的需求,为用户创造价值 此处的价值可以体现在两个方面,即为用户创造利润或者减少成本。如果一个软 件能够满足需求的用户群体越大、创造的利润越大或减少的成本 越大,则该软件产品的质量越高。反之,一个产品尽管运行良好,没有 Bug,扩展性很强,性能很好,但如果没有服务的用户人群,没有为用户 创造价值,则这样的软件尽管运行良好,也无任何质量可言。 2.“软件运行正确”是说软件没有或很少Bug,扩展性很强,性能良好,易 用性高等。这样的软件是一个运行良好的软件,但还不能称之为高质量 的软件。只有在软件符合用户的需求的基础上,运行良好的软件,才是 一个高质量的软件。当然,如果软件完全符合用户需求,但不易使用, 经常出错,性能很差,这样的软件也不是一个高质量的软件。 “正确的软件”及“软件运行正确”二者相辅相成,前者关系到软件的成败, 后者关系到软件的好坏。在现实的很多开发团队中,特别是偏技术的开发团队中,往往过分注重后者(软件的Bug率,性能,可扩展性,架构等),经常陷入在软件开发过程的细节之中,而忽略了前者(软件需要符合用户的需求),开发出的软件经常能用但无用,不是最终用户期望的软件,这样的软件是能用但无用零质量软件。 在产品开发中,能用但无用的现象尤为明显。产品和项目不一样,项目往往是 为某个客户而开展,有特定的需求来源,而产品往往是一个更广泛的概念,是

    Jeecms开发学习笔记

    Jeecms开发学习笔记 青岛海尔软件有限公司 @带吴钩

    目录 1.文档说明 (3) 2. 关键词 (3) 2.1MVC (3) 2.2实体 (3) 2.3实现类 (3) 3. 从Act到Mng到Dao (4) 3.1Act (4) 3.1.1什么是Act? (4) 3.1.2Act实现从html到jspx (4) 3.1.3从Act到Mng (6) 3.2Mng和MngImpl (8) 3.2.1什么是Mng和MngImpl? (8) 3.2.2Mng (9) 3.2.3从MngImpl到Dao (10) 3.3Dao和DaoImpl (13) 3.3.1什么是Dao和DaoImpl? (13) 4. 实体类 (13) 4.1为什么使用实体类? (13) 4.2id的作用 (15) 5配置文件 (16) 5.1数据库配置文件 (16) 5.2国际化 (18)

    1.文档说明 本文档来源一个现实项目的学习,笔者须在Jeecms框架内实现前台提交简历,后台查看简历的过程。而笔者毫无java web开发经验。 因此本文档适用于毫无java web开发经验人群,将以Jeecms的spring MVC + spring + hibernate框架为结构进行介绍。建立一个实体,从数据的写入到查找为流程,进行一个详细的描述。 2.关键词 2.1MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 2.2实体 实体类主要是作为数据管理和业务逻辑处理层面上存在的类别;它们主要在分析阶段区分。 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。 2.3实现类 就是接口的实现类,实现了接口中那些方法的方法体。

    JEECMS数据库结构E-R图

    JEECMS数据库结构E-R图 入门必看阿洛 3个月前 (06-21) 493浏览0评论 JEECMS内容管理系统一共77张表,ER图表导出如下: 如果你的浏览器支持SVG,请点击我在线查看JEECMS数据库ER图 如果你需要下载pdm格式,请点击我下载JEECMS数据库结构pdm格式,(右键另存为)用PowerDesigner打开 如果你需要在线浏览表结构,请点击我在线浏览JEECMS数据库表结构 如你需要打开图片格式的,请点击我打开JEECMS数据库ER图png格式 采集功能涉及到的表 jc_acquisition jc_acquisition_history jc_acquisition_temp 广告功能涉及到的表 jc_advertising_attr jc_advertising_space 栏目功能涉及到的表 jc_channel jc_channel_attr jc_channel_ext jc_channel_model jc_channel_txt

    jc_chnl_group_contri jc_chnl_group_view 评论功能涉及到的表jc_comment jc_comment_ext 网站配置涉及到的表jc_config jc_config_attr 内容管理涉及到的表jc_content jc_content_attachment jc_content_attr jc_content_channel jc_content_check jc_content_count jc_content_ext jc_content_group_view jc_content_picture jc_content_tag jc_content_topic