转载 https://blog.csdn.net/nice_meng/article/details/89179089

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

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

CREATE TABLE WEIPENG(
ID NUMBER(4) PRIMARY KEY,
CONTENT VARCHAR2(255)
);
配置表对应的映射 在 com.jeecms.cms.entity.main.hbm.oracle创建 WeiPeng.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="com.jeecms.cms.entity.main">
<class
name="WeiPeng"
table="WEIPENG"
>
<meta attribute="sync-DAO">false</meta>
<cache usage="read-write"/>
<id name="id" type="java.lang.Integer" column="ID">
<generator class="assigned">
</generator>
</id>
<property
name="content"
column="CONTENT"
type="string"
not-null="true"
length="100"
/>
</class>
</hibernate-mapping>
在 com.jeecms.cms.entity.main 创建对应的实体类 WeiPeng

package com.jeecms.cms.entity.main;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;

import org.apache.commons.lang.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;

import com.jeecms.common.util.DateUtils;
/**
* 投稿表实体类
* @author liyu
*
*/
public class WeiPeng implements Serializable{
private Integer id;//投稿id
private String content;//标题
public JSONObject convertToJson(){
JSONObject json = new JSONObject();
if (getId()!=null) {
json.put("id", getId());
}else{
json.put("id", "");
}
if (StringUtils.isNotBlank(getContent())) {
json.put("content", getContent());
}else{
json.put("content", "");
}
return json;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

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

package com.jeecms.cms.dao.main;

import java.util.List;

import com.jeecms.cms.entity.main.WeiPeng;

public interface TableTestDao {
public List<WeiPeng> getList();//获取数据库中的所有内容
}

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

package com.jeecms.cms.dao.main.impl;

import java.util.List;

import com.jeecms.cms.dao.main.TableTestDao;
import com.jeecms.cms.entity.main.TableTest;
import com.jeecms.cms.entity.main.WeiPeng;
import com.jeecms.common.hibernate4.Finder;
import com.jeecms.common.hibernate4.HibernateBaseDao;

public class TableTestDaoImpl extends HibernateBaseDao<WeiPeng, Integer>implements TableTestDao{
public TableTestDaoImpl() {}//空构造

@Override
protected Class<WeiPeng> getEntityClass() {
return WeiPeng.class;
}

@Override
public List<WeiPeng> getList() {
Finder f = Finder.create("from WeiPeng bean");
f.setCacheable(true);
List find = find(f);
return find;
}
}

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

package com.jeecms.cms.manager.main;

import java.util.List;
import com.jeecms.cms.entity.main.WeiPeng;
public interface TableTestMng {
public List<WeiPeng> getList();
}

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

package com.jeecms.cms.manager.main.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.jeecms.cms.dao.main.TableTestDao;
import java.util.List;
import com.jeecms.cms.entity.main.TableTest;
import com.jeecms.cms.entity.main.WeiPeng;
import com.jeecms.cms.manager.main.TableTestMng;
public class TableTestMngImpl implements TableTestMng{

public TableTestMngImpl() {}//空构造

private TableTestDao dao;

@Autowired //自动绑定
public void setDao(TableTestDao dao) {
this.dao = dao;
}

@Transactional(readOnly = true)
public List<WeiPeng> getList() {
return dao.getList();
}
}

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

package com.jeecms.cms.action.directive;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.jeecms.cms.Constants;
import com.jeecms.cms.entity.main.TableTest;
import com.jeecms.cms.entity.main.WeiPeng;
import com.jeecms.cms.manager.main.TableTestMng;
import static com.jeecms.cms.Constants.TPL_SUFFIX;
import static com.jeecms.common.web.Constants.UTF8;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.jeecms.common.web.freemarker.DefaultObjectWrapperBuilderFactory;
import com.jeecms.common.web.freemarker.DirectiveUtils;
import com.jeecms.common.web.freemarker.DirectiveUtils.InvokeType;
import com.jeecms.common.web.freemarker.ParamsRequiredException;
import com.jeecms.core.entity.CmsSite;
import com.jeecms.core.web.util.FrontUtils;
import freemarker.template.TemplateDirectiveModel;
import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;
public class TableTestDirective implements TemplateDirectiveModel{
/**
* 标签名称
* */
public static final String TPL_NAME = "cms_table_test";
/**
* 输出参数:列表数据
*/
public static final String OUT_LIST = "tag_list";
public TableTestDirective() {}
/**
* 传入参数,列表样式。
*/
public static final String PARAM_STYLE_LIST = "styleList";
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
CmsSite site = FrontUtils.getSite(env);//获取站点
List<WeiPeng> list = getList(params, env);//获取内容列表
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(params);
paramWrap.put(OUT_LIST, DefaultObjectWrapperBuilderFactory.getDefaultObjectWrapper().wrap(list));
//将params的值复制到variable中
Map<String, TemplateModel> origMap = DirectiveUtils.addParamsToVariable(env, paramWrap);
InvokeType type = DirectiveUtils.getInvokeType(params);
String listStyle = DirectiveUtils.getString(PARAM_STYLE_LIST, params);
if (InvokeType.sysDefined == type) {
if (StringUtils.isBlank(listStyle)) {
throw new ParamsRequiredException(PARAM_STYLE_LIST);
}
env.include(Constants.TPL_STYLE_LIST + listStyle + TPL_SUFFIX, UTF8, true);
} else if (InvokeType.userDefined == type) {
if (StringUtils.isBlank(listStyle)) {
throw new ParamsRequiredException(PARAM_STYLE_LIST);
}
FrontUtils.includeTpl(Constants.TPL_STYLE_LIST, site, env);
} else if (InvokeType.custom == type) {
FrontUtils.includeTpl(TPL_NAME, site, params, env);
} else if (InvokeType.body == type) {
body.render(env.getOut());
} else {
throw new RuntimeException("invoke type not handled: " + type);
}
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);//将variable中的params值移除
}
private List<WeiPeng> getList(Map params, Environment env)
throws TemplateException {
return tableTestMng.getList();
}

@Autowired
private TableTestMng tableTestMng;

}

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

在jeecms-context.xml中加入

<bean id="cms_table_test" class="com.jeecms.cms.action.directive.TableTestDirective"/>

<bean id="TableTestMng" class="com.jeecms.cms.manager.main.impl.TableTestMngImpl" />

<bean id="TableTestDao" class="com.jeecms.cms.dao.main.impl.TableTestDaoImpl" />
在jeecms.properties中加入

directive.cms_table_test=cms_table_test
前台页面

[@cms_table_test]
[#list tag_list as a]
<li>id为:${a.id}</li>
<li>对应的内容是:${a.content}</li>
[/#list]
[/@cms_table_test]
最后实现的效果

---------------------
作者:nice_meng
来源:CSDN
原文:https://blog.csdn.net/nice_meng/article/details/89179089
版权声明:本文为博主原创文章,转载请附上博文链接!

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. [转]WPF——Thumb

    Thumb类,表示可由用户拖动的控件.其主要三个事件分别DragDelta,DragStarted,DragCompleted. DragDelta——当 Thumb 控件具有逻辑焦点和鼠标捕获时,随 ...

  2. [JZOJ5233] 【GDOI模拟8.5】概率博弈

    题目 题目大意 给你一棵树,这棵树上的所有叶子节点的权值是随机的排列. 两个人博弈,从根开始,轮流往下走. 先手希望权值最大,后手希望权值最小. 问期望的最终结果. 思考历程 这场比赛实在是太丧心病狂 ...

  3. F. Cowmpany Cowmpensation dp+拉格朗日插值

    题意:一个数,每个节点取值是1-d,父亲比儿子节点值要大,求方案数 题解:\(dp[u][x]=\prod_{v}\sum_{i=1}^xdp[v][i]\),v是u的子节点,先预处理出前3000项, ...

  4. Censoring【自动AC机】【水题毁我青春】【20190614】

    这题简直比注水猪肉还水QAQ. 以前做过KMP的Censoring单串匹配,果断选择自动AC机w 对短串建自动AC机 长串去机子里匹配 用个栈边匹配边弹出 记得弹出一个串后把匹配点指向栈顶就ojbk ...

  5. shell对文件,文件夹的操作

    x=$ OUTFILENAME="output_${x}.sql" if [ -f $OUTFILENAME ];then rm $OUTFILENAME fi 如果文件存在则删除 ...

  6. flock文件锁的学习和应用

    flock文件锁 学习与应用  2016-9-20 作用: 可以使用flock文件锁,避免指定命令的同时执行.(实现任务锁定,解决冲突) 用法: # flock -xn /opt/lock_file ...

  7. 浪潮云+/云加 App 智能化的企业移动办公平台官网下载地址

    上Google?Facebook? 点这里: 手机端:https://ecm.inspur.com/ 桌面端:https://ecm.inspuronline.com/

  8. IIS发布web应用程序之再折腾

    最近几个月发布程序比较多,遇到了各种IIS发布web程序后无法访问的问题.原以为对各种问题都已经摸的差不多了,但今天又为一问题折腾了大半天.具体过程祥记如下: 在server2008 R2 64位系统 ...

  9. dubbo入门学习(二)-----dubbo hello world

    一.dubbo hello world入门示例 1.提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在需要创建两个服务模块进行测试: 模块 功能 订单服务web模块 创 ...

  10. springcloud 与分布式系统(转载)

    原地址:http://blog.csdn.net/neosmith/article/details/51919038 本文不是讲解如何使用spring Cloud的教程,而是探讨Spring Clou ...