原 jeecms9自定义标签以及使用新创建的数据库表
本系统使用的是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]
最后实现的效果
原 jeecms9自定义标签以及使用新创建的数据库表的更多相关文章
- jeecms9自定义标签以及使用新创建的数据库表
转载 https://blog.csdn.net/nice_meng/article/details/89179089 本系统使用的是jeecmsv9版本,收集网上知识后,进行个人汇总 首先,自己创建 ...
- 新创建的数据库,执行db2look时,遇到package db2lkfun.bnd bind failed
在新创建的数据库中,执行db2look的时候,存在这样的问题 db2v97i1@oc0644314035 ~]$ db2look -d sample -e -l -o db2look.ddl -- N ...
- 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表
创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...
- Java创建Oracle数据库表
我们通常只用java执行DML(即:insert, update, delete, select)操作,很少用来执行DDL(create, drop, alert)操作.今天试了下如何用java来创建 ...
- django在admin后台注册自己创建的数据库表
django在admin后台注册自己创建的数据库表,这样我们就可以在admin后台看到表结构信息,我们就可以在admin后台快速录入表记录信息 如果没有注册,那么你在登录django自带的admin的 ...
- iOS:CoreData数据库的使用一(创建单个数据库表)
CoreData数据库框架:mac系统自带的数据库,它是苹果公司对sqlite进行封装而来的,既提供了对数据库的主要操作,也提供了具体的视图关系模型. 需要用到三个对象: 1•Managed Obje ...
- JEECMS站群管理系统-- 自定义标签及使用自己创建的表的实现过程
下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public cla ...
- 创建oracle数据库表空间并分配用户
我们在本地的oracle上或者virtualbox的oracle上 创建新的数据库表空间操作:通过system账号来创建并授权/*--创建表空间create tablespace YUJKDATAda ...
- 使用PowerDesigner创建mysql数据库表图
使用PowerDesigner 建数据库表. 一直很忙,没有时间写东西.这次搞点会声会色的,嘿嘿 此技能为项目经理必备技能. 本次主角: 1.在workspace下建立一项目: physical da ...
随机推荐
- 二分查找总结及部分Lintcode题目分析 4
二分法不只能像之前的记录,可以找到index~第二种类型是找到二分答案.有以下几个例子,都是之前二分法的扩展,不再赘述,只记录下忽略的点,以后回顾多注意~ 1. wood cut class Solu ...
- MyBatis的查询
MyBatis的查询 在上一个MyBatis的核心API中介绍了SqlSessionFactoryBuilder.SqlSessionFactory以及SqlSession是什么,它们都有什么作用,本 ...
- 第四周课堂笔记3th
1.函数的嵌套 作用域,说的是变量 全局作用域:内置命名空间,全局命名空间 全局空间不可以引用局部空间 局部作用域: 局部命名空间 开辟的临时空间前提是调用了函数 全局作用域在整个文件中被使用 L ...
- Apache Pig和Solr问题笔记(一)
记录下最近两天散仙在工作中遇到的有关Pig0.12.0和Solr4.10.2一些问题,总共有3个,如下: (1)问题一: 如何Pig中使用ASCII和十六进制(hexadecimal)的分隔符进行加载 ...
- java中的Math类
一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等 在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形.为了解决这个问题,Ja ...
- 移植 Busybox
下载 busybox 从 http://www.busybox.net/downloads/busybox1.1.3.tar.gz/下载 busybox1.1.3 到/tmp 目录当中,并解压. ...
- JS规则 是非颠倒(逻辑非操作符)"!"是逻辑非操作符,也就是"不是"的意思,非真即假,非假即真
是非颠倒(逻辑非操作符) "!"是逻辑非操作符,也就是"不是"的意思,非真即假,非假即真.好比小华今天买了一个杯子,小明说:"杯子是白色的" ...
- 【UVa 12186】Another Crisis
[Link]: [Description] 给你n个员工和一个boss; 这n个员工和boss之间的关系是一棵树; 然后,现在最底层的叶子节点,想要向上级写信; 每个叶子节点都会向上级写一封信; 然而 ...
- Duilib入门文档提供下载
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] Duilib入门文档 基本框架 编写界面xml 响应事件 贴图描述 类html文本描述 动态换肤 Dll插件 资源打包 Duil ...
- go的单引号、双引号、反引号的区别
Go语言的字符串类型string在本质上就与其他语言的字符串类型不同: Java的String.C++的std::string以及Python3的str类型都只是定宽字符序列 Go语言的字符串是一个用 ...