本系统使用的是jeecmsv9版本,收集网上知识后,进行个人汇总

首先,自己创建一个表.. 我们使用的是oracle的库

  1.  
    CREATE TABLE WEIPENG(
  2.  
    ID NUMBER(4) PRIMARY KEY,
  3.  
    CONTENT VARCHAR2(255)
  4.  
    );

配置表对应的映射 在 com.jeecms.cms.entity.main.hbm.oracle创建 WeiPeng.hbm.xml

  1.  
    <?xml version="1.0"?>
  2.  
    <!DOCTYPE hibernate-mapping PUBLIC
  3.  
    "-//Hibernate/Hibernate Mapping DTD//EN"
  4.  
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
  5.  
     
  6.  
    <hibernate-mapping package="com.jeecms.cms.entity.main">
  7.  
    <class
  8.  
    name="WeiPeng"
  9.  
    table="WEIPENG"
  10.  
    >
  11.  
    <meta attribute="sync-DAO">false</meta>
  12.  
    <cache usage="read-write"/>
  13.  
    <id name="id" type="java.lang.Integer" column="ID">
  14.  
    <generator class="assigned">
  15.  
    </generator>
  16.  
    </id>
  17.  
    <property
  18.  
    name="content"
  19.  
    column="CONTENT"
  20.  
    type="string"
  21.  
    not-null="true"
  22.  
    length="100"
  23.  
    />
  24.  
    </class>
  25.  
    </hibernate-mapping>

在 com.jeecms.cms.entity.main 创建对应的实体类 WeiPeng

  1.  
    package com.jeecms.cms.entity.main;
  2.  
     
  3.  
    import java.io.Serializable;
  4.  
    import java.util.ArrayList;
  5.  
    import java.util.Date;
  6.  
    import java.util.List;
  7.  
    import java.util.Set;
  8.  
     
  9.  
    import org.apache.commons.lang.StringUtils;
  10.  
    import org.json.JSONArray;
  11.  
    import org.json.JSONObject;
  12.  
     
  13.  
    import com.jeecms.common.util.DateUtils;
  14.  
    /**
  15.  
    * 投稿表实体类
  16.  
    * @author liyu
  17.  
    *
  18.  
    */
  19.  
    public class WeiPeng implements Serializable{
  20.  
    private Integer id;//投稿id
  21.  
    private String content;//标题
  22.  
    public JSONObject convertToJson(){
  23.  
    JSONObject json = new JSONObject();
  24.  
    if (getId()!=null) {
  25.  
    json.put("id", getId());
  26.  
    }else{
  27.  
    json.put("id", "");
  28.  
    }
  29.  
    if (StringUtils.isNotBlank(getContent())) {
  30.  
    json.put("content", getContent());
  31.  
    }else{
  32.  
    json.put("content", "");
  33.  
    }
  34.  
    return json;
  35.  
    }
  36.  
     
  37.  
    public Integer getId() {
  38.  
    return id;
  39.  
    }
  40.  
     
  41.  
    public void setId(Integer id) {
  42.  
    this.id = id;
  43.  
    }
  44.  
     
  45.  
    public String getContent() {
  46.  
    return content;
  47.  
    }
  48.  
     
  49.  
    public void setContent(String content) {
  50.  
    this.content = content;
  51.  
    }
  52.  
     
  53.  
    }

在 com.jeecms.cms.dao.main 创建Dao接口方法

  1.  
    package com.jeecms.cms.dao.main;
  2.  
     
  3.  
    import java.util.List;
  4.  
     
  5.  
    import com.jeecms.cms.entity.main.WeiPeng;
  6.  
     
  7.  
    public interface TableTestDao {
  8.  
    public List<WeiPeng> getList();//获取数据库中的所有内容
  9.  
    }
  10.  
     

在 com.jeecms.cms.dao.main.impl 创建   Dao的实现类 TableTestDaoImpl

  1.  
    package com.jeecms.cms.dao.main.impl;
  2.  
     
  3.  
    import java.util.List;
  4.  
     
  5.  
    import com.jeecms.cms.dao.main.TableTestDao;
  6.  
    import com.jeecms.cms.entity.main.TableTest;
  7.  
    import com.jeecms.cms.entity.main.WeiPeng;
  8.  
    import com.jeecms.common.hibernate4.Finder;
  9.  
    import com.jeecms.common.hibernate4.HibernateBaseDao;
  10.  
     
  11.  
    public class TableTestDaoImpl extends HibernateBaseDao<WeiPeng, Integer>implements TableTestDao{
  12.  
    public TableTestDaoImpl() {}//空构造
  13.  
     
  14.  
    @Override
  15.  
    protected Class<WeiPeng> getEntityClass() {
  16.  
    return WeiPeng.class;
  17.  
    }
  18.  
     
  19.  
    @Override
  20.  
    public List<WeiPeng> getList() {
  21.  
    Finder f = Finder.create("from WeiPeng bean");
  22.  
    f.setCacheable(true);
  23.  
    List find = find(f);
  24.  
    return find;
  25.  
    }
  26.  
    }
  27.  
     

在com.jeecms.cms.manager.main创建Mng接口   TableTestMng

  1.  
    package com.jeecms.cms.manager.main;
  2.  
     
  3.  
    import java.util.List;
  4.  
    import com.jeecms.cms.entity.main.WeiPeng;
  5.  
    public interface TableTestMng {
  6.  
    public List<WeiPeng> getList();
  7.  
    }
  8.  
     

在 com.jeecms.cms.manager.main.impl创建Mng的实现类  TableTestMngImpl

  1.  
    package com.jeecms.cms.manager.main.impl;
  2.  
     
  3.  
     
  4.  
    import org.springframework.beans.factory.annotation.Autowired;
  5.  
    import org.springframework.transaction.annotation.Transactional;
  6.  
    import com.jeecms.cms.dao.main.TableTestDao;
  7.  
    import java.util.List;
  8.  
    import com.jeecms.cms.entity.main.TableTest;
  9.  
    import com.jeecms.cms.entity.main.WeiPeng;
  10.  
    import com.jeecms.cms.manager.main.TableTestMng;
  11.  
    public class TableTestMngImpl implements TableTestMng{
  12.  
     
  13.  
    public TableTestMngImpl() {}//空构造
  14.  
     
  15.  
    private TableTestDao dao;
  16.  
     
  17.  
    @Autowired //自动绑定
  18.  
    public void setDao(TableTestDao dao) {
  19.  
    this.dao = dao;
  20.  
    }
  21.  
     
  22.  
    @Transactional(readOnly = true)
  23.  
    public List<WeiPeng> getList() {
  24.  
    return dao.getList();
  25.  
    }
  26.  
    }
  27.  
     

在com.jeecms.cms.action.directive 创建标签类TableTestDirective

  1.  
    package com.jeecms.cms.action.directive;
  2.  
    import java.io.IOException;
  3.  
    import java.util.HashMap;
  4.  
    import java.util.List;
  5.  
    import java.util.Map;
  6.  
    import com.jeecms.cms.Constants;
  7.  
    import com.jeecms.cms.entity.main.TableTest;
  8.  
    import com.jeecms.cms.entity.main.WeiPeng;
  9.  
    import com.jeecms.cms.manager.main.TableTestMng;
  10.  
    import static com.jeecms.cms.Constants.TPL_SUFFIX;
  11.  
    import static com.jeecms.common.web.Constants.UTF8;
  12.  
    import org.apache.commons.lang.StringUtils;
  13.  
    import org.springframework.beans.factory.annotation.Autowired;
  14.  
    import com.jeecms.common.web.freemarker.DefaultObjectWrapperBuilderFactory;
  15.  
    import com.jeecms.common.web.freemarker.DirectiveUtils;
  16.  
    import com.jeecms.common.web.freemarker.DirectiveUtils.InvokeType;
  17.  
    import com.jeecms.common.web.freemarker.ParamsRequiredException;
  18.  
    import com.jeecms.core.entity.CmsSite;
  19.  
    import com.jeecms.core.web.util.FrontUtils;
  20.  
    import freemarker.template.TemplateDirectiveModel;
  21.  
    import freemarker.core.Environment;
  22.  
    import freemarker.template.TemplateDirectiveBody;
  23.  
    import freemarker.template.TemplateException;
  24.  
    import freemarker.template.TemplateModel;
  25.  
    public class TableTestDirective implements TemplateDirectiveModel{
  26.  
    /**
  27.  
    * 标签名称
  28.  
    * */
  29.  
    public static final String TPL_NAME = "cms_table_test";
  30.  
    /**
  31.  
    * 输出参数:列表数据
  32.  
    */
  33.  
    public static final String OUT_LIST = "tag_list";
  34.  
    public TableTestDirective() {}
  35.  
    /**
  36.  
    * 传入参数,列表样式。
  37.  
    */
  38.  
    public static final String PARAM_STYLE_LIST = "styleList";
  39.  
    @Override
  40.  
    public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
  41.  
    CmsSite site = FrontUtils.getSite(env);//获取站点
  42.  
    List<WeiPeng> list = getList(params, env);//获取内容列表
  43.  
    Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(params);
  44.  
    paramWrap.put(OUT_LIST, DefaultObjectWrapperBuilderFactory.getDefaultObjectWrapper().wrap(list));
  45.  
    //将params的值复制到variable中
  46.  
    Map<String, TemplateModel> origMap = DirectiveUtils.addParamsToVariable(env, paramWrap);
  47.  
    InvokeType type = DirectiveUtils.getInvokeType(params);
  48.  
    String listStyle = DirectiveUtils.getString(PARAM_STYLE_LIST, params);
  49.  
    if (InvokeType.sysDefined == type) {
  50.  
    if (StringUtils.isBlank(listStyle)) {
  51.  
    throw new ParamsRequiredException(PARAM_STYLE_LIST);
  52.  
    }
  53.  
    env.include(Constants.TPL_STYLE_LIST + listStyle + TPL_SUFFIX, UTF8, true);
  54.  
    } else if (InvokeType.userDefined == type) {
  55.  
    if (StringUtils.isBlank(listStyle)) {
  56.  
    throw new ParamsRequiredException(PARAM_STYLE_LIST);
  57.  
    }
  58.  
    FrontUtils.includeTpl(Constants.TPL_STYLE_LIST, site, env);
  59.  
    } else if (InvokeType.custom == type) {
  60.  
    FrontUtils.includeTpl(TPL_NAME, site, params, env);
  61.  
    } else if (InvokeType.body == type) {
  62.  
    body.render(env.getOut());
  63.  
    } else {
  64.  
    throw new RuntimeException("invoke type not handled: " + type);
  65.  
    }
  66.  
    DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);//将variable中的params值移除
  67.  
    }
  68.  
    private List<WeiPeng> getList(Map params, Environment env)
  69.  
    throws TemplateException {
  70.  
    return tableTestMng.getList();
  71.  
    }
  72.  
     
  73.  
    @Autowired
  74.  
    private TableTestMng tableTestMng;
  75.  
     
  76.  
    }
  77.  
     

标签类需要在jeecms-context.xml和jeecms.properties中进行配置

在jeecms-context.xml中加入

  1.  
     
  2.  
    <bean id="cms_table_test" class="com.jeecms.cms.action.directive.TableTestDirective"/>
  3.  
     
  4.  
     
  5.  
    <bean id="TableTestMng" class="com.jeecms.cms.manager.main.impl.TableTestMngImpl" />
  6.  
     
  7.  
     
  8.  
    <bean id="TableTestDao" class="com.jeecms.cms.dao.main.impl.TableTestDaoImpl" />

在jeecms.properties中加入

directive.cms_table_test=cms_table_test

前台页面

  1.  
    [@cms_table_test]
  2.  
    [#list tag_list as a]
  3.  
    <li>id为:${a.id}</li>
  4.  
    <li>对应的内容是:${a.content}</li>
  5.  
    [/#list]
  6.  
    [/@cms_table_test]

最后实现的效果

原 jeecms9自定义标签以及使用新创建的数据库表的更多相关文章

  1. jeecms9自定义标签以及使用新创建的数据库表

    转载 https://blog.csdn.net/nice_meng/article/details/89179089 本系统使用的是jeecmsv9版本,收集网上知识后,进行个人汇总 首先,自己创建 ...

  2. 新创建的数据库,执行db2look时,遇到package db2lkfun.bnd bind failed

    在新创建的数据库中,执行db2look的时候,存在这样的问题 db2v97i1@oc0644314035 ~]$ db2look -d sample -e -l -o db2look.ddl -- N ...

  3. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  4. Java创建Oracle数据库表

    我们通常只用java执行DML(即:insert, update, delete, select)操作,很少用来执行DDL(create, drop, alert)操作.今天试了下如何用java来创建 ...

  5. django在admin后台注册自己创建的数据库表

    django在admin后台注册自己创建的数据库表,这样我们就可以在admin后台看到表结构信息,我们就可以在admin后台快速录入表记录信息 如果没有注册,那么你在登录django自带的admin的 ...

  6. iOS:CoreData数据库的使用一(创建单个数据库表)

    CoreData数据库框架:mac系统自带的数据库,它是苹果公司对sqlite进行封装而来的,既提供了对数据库的主要操作,也提供了具体的视图关系模型. 需要用到三个对象: 1•Managed Obje ...

  7. JEECMS站群管理系统-- 自定义标签及使用自己创建的表的实现过程

    下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public cla ...

  8. 创建oracle数据库表空间并分配用户

    我们在本地的oracle上或者virtualbox的oracle上 创建新的数据库表空间操作:通过system账号来创建并授权/*--创建表空间create tablespace YUJKDATAda ...

  9. 使用PowerDesigner创建mysql数据库表图

    使用PowerDesigner 建数据库表. 一直很忙,没有时间写东西.这次搞点会声会色的,嘿嘿 此技能为项目经理必备技能. 本次主角: 1.在workspace下建立一项目: physical da ...

随机推荐

  1. Http学习(一)

    HTTP 超文本传输协议 综述: HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从 ...

  2. Linq Lambda 中group by多列后count数量的写法

    直接上代码: List<Student> ss = new List<Student>(); Student ss1 = , Age = , Name = " }; ...

  3. NPM 使用介绍(包管理工具,解决NodeJS代码部署上的很多问题)

    引用地址:http://www.runoob.com/nodejs/nodejs-npm.html NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问 ...

  4. 响应式编程(Reactive Programming)(Rx)介绍

    很明显你是有兴趣学习这种被称作响应式编程的新技术才来看这篇文章的. 学习响应式编程是很困难的一个过程,特别是在缺乏优秀资料的前提下.刚开始学习时,我试过去找一些教程,并找到了为数不多的实用教程,但是它 ...

  5. [kuangbin带你飞]专题一 简单搜索 - D - Fliptile

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...

  6. 使用JDK自带功能,实现一个简单的Web Service接口发布

    万事开头难,本篇文章的目的就是使用JDK自带的功能,实现一个最简单的Web Service接口的发布. 下图是项目的组成,主要有三个部分,一个接口(WS),一个接口的实现类(WSImp),还有一个接口 ...

  7. Git log和reflog

    1.log  log命令可以显示所有提交过的版本信息.显示信息如下: Administrator@USER-20171026MG MINGW64 ~/Desktop/lyf (master) $ gi ...

  8. Identifying a Blocking Query After the Issuing Session Becomes Idle

    Identifying a Blocking Query After the Issuing Session Becomes Idle #查看阻塞信息 select * from sys.innodb ...

  9. 18-4-bind

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Lua程序设计之字符串精要

    (摘自Lua程序设计) 基本: Lua语言的字符串是一串字节组成的序列. 在Lua语言中,字符使用8个比特位来存储. Lua语言中的字符串可以存储包括空字符在内的所有数值代码,这意味着我们可以在字符串 ...