jeecg dictionary 过滤标签可以过滤数据吗

JEECG 3.6.6 新春版本发布,企业级JAVA快速开发平台
时间: 19:01:30
&&&& 阅读:65
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&JEECG 3.6.6新春版本发布,企业级快速开发平台&————————————————————————————————————————&Version: &jeecg_3.6.6项 目:&& JEECG 企业级快速开发平台Date : & & 官 网 : & & www.jeecg.org————————————————————————————————————————&JEECG简介:& & & &JEECG(J2EE Code Generation)是一款基于代码生成器的企业级快速开发平台,开源界“小普元”超越传统商业平台。引领新的开发模式(Online Coding-&代码生成器-&手工MERGE智能开发),可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性。适用项目:& & & JEECG快速开发平台,可以应用在任何J2EE项目,尤其适合企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其智能开发模式,可以显著提高开发效率70%以上,极大降低开发成本;JEECG尤为显著的支持SAAS企业级应用开发,插件机制更好的支持了SAAS云应用拓展。&为什么选择JEECG ?:采用主流框架,容易上手; 代码生成器依赖性低,扩展能力强,可快速实现二次开发;配置能力强,表单功能,可直接在线配置,支持单表模式、一对多模型、树模型;开发效率高,采用代码生成器,单表数据模型和一对多(父子表)数据模型,增删改查功能自动生成,无需编码直接使用;页面校验自动生成(必须输入、数字校验、金额校验、时间空间等);封装完善的用户基础权限、强大的数据权限、数据字典等基础功能,直接使用无需修改常用共通封装,各种工具类(定时任务,短信接口,邮件发送,Excel导出等),基本满足80%项目需求集成简易报表工具,图像报表和数据导出非常方便,可极其方便的生成pdf、excel、word等报表;UI标签库,针对WEB UI进行标准式封装,页面统一采用自定义标签实现功能:列表数据展现、页面校验等,标签使用简单清晰且便于维护查询过滤器:查询功能自动生成,后台动态拼SQL追加查询条件;支持多种匹配方式(全匹配/模糊查询/包含查询/不匹配查询);多数据源:轻量级实现,在线配置数据源,工具封装支持多系统数据源抓取数据;国际化:支持多语言,开发国际化项目非常方便;数据权限(精细化数据权限控制,控制到行级,列表级,表单字段级,实现不同人看不同数据,不同人对同一个页面操作不同字段)多套首页风格切换,支持自定义首页风格。(经典风格、Shortcut风格、ACE bootstrap风格、云桌面风格)在线配置报表(无需编码,通过在线配置方式,实现曲线图,柱状图,数据等报表)简易Excel导入导出,支持单表导出和一对多表模式导出,生成的代码自带导入导出功能自定义表单,业内唯一配备此高级功能的开发平台,支持用户自定义表单布局,支持单表,一对多表单、支持select、radio、checkbox、textarea、date、popup、列表、宏等控件& 升级日志:& &此版本云应用微服务框架版本,支持插件开发,让我们共同期待后续版本的到来插件:集成即时聊天webim聊天插件;插件:我的邮箱风格改版online表单,支持一个表,多套online配置;online自定义样式BUG修正;&online功能,word布局自定义模板功能优化:多文件上传、多选checkbox编辑赋值;&ACE系统菜单支持自定义图标样式;ACE首页风格支持三级菜单;IE8兼容性修正;&Ztree树标签;&Sqlserver驱动升级,支持2008;系统管理,支持组织机构分配角色赋权;代码重构优化& 源码下载:
& & && 系统截图:& &&650) this.width=650;" src="http://img.blog.csdn.net/04915?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbmdkYWlzY290dA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"
style="border:" />650) this.width=650;" src="http://img.blog.csdn.net/55414?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhbmdkYWlzY290dA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"
style="border:" />标签:&&&&&&&&&原文:http://.blog.51cto.com/6598
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生! 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
JEECG UI标签库帮助文档v3.3
下载积分:50
内容提示:JEECG UI标签库帮助文档v3.3
文档格式:PDF|
浏览次数:915|
上传日期: 12:51:23|
文档星级:
全文阅读已结束,如果下载本文需要使用
 50 积分
下载此文档
该用户还上传了这些文档
JEECG UI标签库帮助文档v3.3
关注微信公众号/ jeecgweb
项目语言:JAVA
权限:read-only(如需更高权限请先加入项目)
Index: vo/easyui/ComboTreeModel.java
===================================================================
--- vo/easyui/ComboTreeModel.java (revision 0)
+++ vo/easyui/ComboTreeModel.java (revision 92)
@@ -0,0 +1,59 @@
+package org.jeecgframework.tag.vo.
+ * @ClassName: ComboTreeModel
+ * @Description: TODO(下拉树形选择框模型设置类)
+ * @author
下午07:24:22
+public class ComboTreeModel implements java.io.Serializable {
+ private String idF
+ private String textF
+ private String iconC// 前面的小图标样式
+ private String childF// 子节点
+ private String srcF//地址字段
+ public ComboTreeModel(String idField, String textField, String childField) {
this.idField = idF
this.textField = textF
this.childField = childF
+ public ComboTreeModel(String idField, String textField, String childField, String srcField) {
this.idField = idF
this.textField = textF
this.childField = childF
this.srcField = srcF
+ public String getIconCls() {
return iconC
+ public void setIconCls(String iconCls) {
this.iconCls = iconC
+ public String getChildField() {
return childF
+ public void setChildField(String childField) {
this.childField = childF
+ public String getIdField() {
return idF
+ public void setIdField(String idField) {
this.idField = idF
+ public String getTextField() {
return textF
+ public void setTextField(String textField) {
this.textField = textF
+ public String getSrcField() {
return srcF
+ public void setSrcField(String srcField) {
this.srcField = srcF
Index: vo/easyui/Autocomplete.java
===================================================================
--- vo/easyui/Autocomplete.java (revision 0)
+++ vo/easyui/Autocomplete.java (revision 92)
@@ -0,0 +1,61 @@
+package org.jeecgframework.tag.vo.
+ * @author
+public class Autocomplete {
+ private String entityN//实体名称
+ private String labelF//提示显示的字段
+ private String valueF//传递后台的字段
+ private String searchF//查询关键字字段
+ private S//查询传递的值
+ private Integer maxR
+ private Integer curP
+ public String getSearchField() {
return searchF
+ public void setSearchField(String searchField) {
this.searchField = searchF
+ public String getEntityName() {
return entityN
+ public void setEntityName(String entityName) {
this.entityName = entityN
+ public String getTrem() {
+ public void setTrem(String trem) {
this.trem =
+ public String getLabelField() {
return labelF
+ public void setLabelField(String labelField) {
this.labelField = labelF
+ public String getValueField() {
return valueF
+ public void setValueField(String valueField) {
this.valueField = valueF
+ public Integer getMaxRows() {
return maxR
+ public void setMaxRows(Integer maxRows) {
this.maxRows = maxR
+ public Integer getCurPage() {
if(curPage==null||curPage&1){
curPage = 1;
return curP
+ public void setCurPage(Integer curPage) {
this.curPage = curP
Index: vo/easyui/DropDownMenu.java
===================================================================
--- vo/easyui/DropDownMenu.java (revision 0)
+++ vo/easyui/DropDownMenu.java (revision 92)
@@ -0,0 +1,47 @@
+package org.jeecgframework.tag.vo.
+ * 类描述:列表字段模型
+ * @author:
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class DropDownMenu {
+ protected S//
+ protected String classLi;
+ protected S
+ protected S
+ protected S
+ public String getName() {
+ public void setName(String name) {
this.name =
+ public String getClassLi() {
return classLi;
+ public void setClassLi(String classLi) {
this.classLi = classLi;
+ public String getHref() {
+ public void setHref(String href) {
this.href =
+ public String getIcon() {
+ public void setIcon(String icon) {
this.icon =
+ public String getColor() {
+ public void setColor(String color) {
this.color =
Index: vo/easyui/DataGridUrl.java
===================================================================
--- vo/easyui/DataGridUrl.java (revision 0)
+++ vo/easyui/DataGridUrl.java (revision 92)
@@ -0,0 +1,120 @@
+package org.jeecgframework.tag.vo.
+ * @author
+public class DataGridUrl {
+ private S//操作链接地址
+ private S//按钮名称
+ private S//按钮图标
+ private S//传入参数
+ private S//弹出窗宽度
+ private S//弹出窗高度
+ private OptTypeD//按钮类型
+ private S//是否是操作选项以外的链接
+ private S//询问链接的提示语
+ private S//判断链接是否显示的表达式
+ private S//自定义函数名称
+ private boolean isR//是否是单选框
+ private S//选项单击事件
+ public String getOnclick() {
+ public void setOnclick(String onclick) {
this.onclick =
+ public void setRadio(boolean isRadio) {
this.isRadio = isR
+ public String getFunname() {
+ public void setFunname(String funname) {
this.funname =
+ public String getMessage() {
+ public String getExp() {
+ public void setExp(String exp) {
this.exp =
+ public void setMessage(String message) {
this.message =
+ public String getIsbtn() {
+ public void setIsbtn(String isbtn) {
this.isbtn =
+ public void setType(OptTypeDirection type) {
this.type =
+ public OptTypeDirection getType() {
+ public String getUrl() {
+ public void setUrl(String url) {
this.url =
+ public String getTitle() {
+ public void setTitle(String title) {
this.title =
+ public String getValue() {
+ public void setValue(String value) {
this.value =
+ public boolean isRadio() {
return isR
+ public String getWidth() {
+ public void setWidth(String width) {
this.width =
+ public String getHeight() {
+ public String getIcon() {
+ public void setHeight(String height) {
this.height =
+ public void setIcon(String icon) {
this.icon =
Index: vo/easyui/OptTypeDirection.java
===================================================================
--- vo/easyui/OptTypeDirection.java (revision 0)
+++ vo/easyui/OptTypeDirection.java (revision 92)
@@ -0,0 +1,9 @@
+package org.jeecgframework.tag.vo.
+* 列表操作类型
+* @author
+public enum OptTypeDirection {
+ Deff,Del,Fun,OpenWin,Confirm,ToolBar,OpenTab
Index: vo/easyui/SortColumn.java
===================================================================
--- vo/easyui/SortColumn.java (revision 0)
+++ vo/easyui/SortColumn.java (revision 92)
@@ -0,0 +1,70 @@
+package org.jeecgframework.tag.vo.
+ * @author
+public class SortColumn {
* 排序索引
+ protected S
* 自定义排序属性
+ protected S
* 排序类型
+ protected S
* 排序字段名字
+ protected S
* 自定义取值
+ protected S
+ public String getValue() {
+ public void setValue(String value) {
this.value =
+ public String getIndex() {
+ public void setIndex(String index) {
this.index =
+ public String getOrder() {
+ public void setOrder(String order) {
this.order =
+ public String getType() {
+ public void setType(String type) {
this.type =
+ public String getName() {
+ public void setName(String name) {
this.name =
Index: vo/easyui/Tab.java
===================================================================
--- vo/easyui/Tab.java (revision 0)
+++ vo/easyui/Tab.java (revision 92)
@@ -0,0 +1,107 @@
+package org.jeecgframework.tag.vo.
+ * TAB模型
+ * @author 张代浩
+public class Tab {
+ private S
+ private S
+ private S
+ private S
+ private String icon = &'icon-default'&;
+ private S// 宽度
+ private S// 高度
+ private S
+ private boolean closable=
* @return the closable
+ public boolean isClosable() {
* @param closable
the closable to set
+ public void setClosable(boolean closable) {
this.closable =
+ public String getHref() {
+ public void setHref(String href) {
this.href =
+ public String getTitle() {
+ public void setTitle(String title) {
this.title =
+ public String getIcon() {
+ public void setIcon(String icon) {
this.icon =
+ public String getWidth() {
+ public void setWidth(String width) {
this.width =
+ public String getHeigth() {
+ public void setHeigth(String heigth) {
this.heigth =
+ public boolean isCache() {
+ public void setCache(boolean cache) {
this.cache =
+ public String getContent() {
+ public void setContent(String content) {
this.content =
+ public String getId() {
+ public void setId(String id) {
+ public String getIframe() {
+ public void setIframe(String iframe) {
this.iframe =
Index: vo/easyui/TreeGridModel.java
===================================================================
--- vo/easyui/TreeGridModel.java (revision 0)
+++ vo/easyui/TreeGridModel.java (revision 92)
@@ -0,0 +1,84 @@
+package org.jeecgframework.tag.vo.
+ * @ClassName: TreeGridModel
+ * @Description: TODO(树形列表模型设置类)
+ * @author
下午07:24:22
+public class TreeGridModel implements java.io.Serializable {
+ private String idF
+ private String textF
+ private String childL
private String parentId;
private String parentT
+ public String getOrder() {
+ public void setOrder(String order) {
this.order =
+ public String getIcon() {
+ public void setIcon(String icon) {
this.icon =
+ public String getRoleid() {
+ public void setRoleid(String roleid) {
this.roleid =
+ public String getParentText() {
return parentT
+ public void setParentText(String parentText) {
this.parentText = parentT
+ public String getCode() {
+ public void setCode(String code) {
this.code =
+ public String getSrc() {
+ public void setSrc(String src) {
this.src =
+ public String getParentId() {
return parentId;
+ public void setParentId(String parentId) {
this.parentId = parentId;
+ public String getIdField() {
return idF
+ public void setIdField(String idField) {
this.idField = idF
+ public String getTextField() {
return textF
+ public void setTextField(String textField) {
this.textField = textF
+ public String getChildList() {
return childL
+ public void setChildList(String childList) {
this.childList = childL
Index: vo/easyui/ColumnValue.java
===================================================================
--- vo/easyui/ColumnValue.java (revision 0)
+++ vo/easyui/ColumnValue.java (revision 92)
@@ -0,0 +1,36 @@
+package org.jeecgframework.tag.vo.
+ * @author
+public class ColumnValue {
+ private S
+ private S
+ private S
+ public String getName() {
+ public void setName(String name) {
this.name =
+ public String getText() {
+ public void setText(String text) {
this.text =
+ public String getValue() {
+ public void setValue(String value) {
this.value =
Index: vo/easyui/TabMenu.java
===================================================================
--- vo/easyui/TabMenu.java (revision 0)
+++ vo/easyui/TabMenu.java (revision 92)
@@ -0,0 +1,54 @@
+package org.jeecgframework.tag.vo.
+ * TAB模型
+ * @author 张代浩
+public class TabMenu {
+ private String classL//li上样式
+ private S
private S//名称
+ private S//标签图标
+ private String iconC//标签图标颜色
+ private boolean tab=//是否为可切换标签页
+ public boolean isTab() {
+ public void setTab(boolean tab) {
this.tab =
+ public String getClassLi() {
return classLi;
+ public void setClassLi(String classLi) {
this.classLi = classLi;
+ public String getUrl() {
+ public void setUrl(String url) {
this.url =
+ public String getTitle() {
+ public void setTitle(String title) {
this.title =
+ public String getIcon() {
+ public void setIcon(String icon) {
this.icon =
+ public String getIconColor() {
return iconC
+ public void setIconColor(String iconColor) {
this.iconColor = iconC
Index: vo/easyui/Carousel.java
===================================================================
--- vo/easyui/Carousel.java (revision 0)
+++ vo/easyui/Carousel.java (revision 92)
@@ -0,0 +1,33 @@
+package org.jeecgframework.tag.vo.
+ * Carousel
+ * @author 张代浩
+public class Carousel {
+ private S //图片路径
+ private S //图片信息描述
+ private boolean active= //当前显示项
+ public String getPath() {
+ public void setPath(String path) {
this.path =
+ public String getMessage() {
+ public void setMessage(String message) {
this.message =
+ public boolean isActive() {
+ public void setActive(boolean active) {
this.active =
Index: vo/easyui/DataGridColumn.java
===================================================================
--- vo/easyui/DataGridColumn.java (revision 0)
+++ vo/easyui/DataGridColumn.java (revision 92)
@@ -0,0 +1,254 @@
+package org.jeecgframework.tag.vo.
+ * 类描述:列表字段模型
+ * @author:
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class DataGridColumn {
+ protected S//表格列名
+ protected S//数据库对应字段
+ protected I//宽度
+ protected S//跨列
+ protected S//跨行
+ protected S//对齐方式
+ protec//是否排序
+ protec//是否显示复选框
+ protected S//格式化函数
+ prot//是否隐藏
+ protected S//
+ pro//是否是图片
+ pro//是否查询
+ protected String queryMode = &single&;//字段查询模式:single单字段查询;group范围查询
+ protected boolean autoLoadData = // 列表是否自动加载数据
+ private boolean frozenColumn= // 是否是冰冻列
+ protected S//自定义链接
+ protected String funname=&openwindow&;//自定义函数名称
+ protected S
+ protected S
+ protected S
+ protected S
+ protected S //列的颜色值
+ protected String imageS//自定义图片显示大小
+ protected String downloadN//附件下载
+ protected //自动补全
+ protected String extendP//扩展参数,easyui有的,但是jeecg没有的参数进行扩展
+ public String getDownloadName() {
return downloadN
+ public void setDownloadName(String downloadName) {
this.downloadName = downloadN
+ public String getImageSize() {
return imageS
+ public void setImageSize(String imageSize) {
this.imageSize = imageS
+ public boolean isQuery() {
+ public String getArg() {
+ public void setArg(String arg) {
this.arg =
+ public void setQuery(boolean query) {
this.query =
+ public boolean isImage() {
+ public void setImage(boolean image) {
this.image =
+ public String getTreefield() {
+ public void setTreefield(String treefield) {
this.treefield =
+ public void setTitle(String title) {
this.title =
+ public void setField(String field) {
this.field =
+ public void setWidth(Integer width) {
this.width =
+ public void setRowspan(String rowspan) {
this.rowspan =
+ public void setColspan(String colspan) {
this.colspan =
+ public void setAlign(String align) {
this.align =
+ public void setSortable(boolean sortable) {
this.sortable =
+ public void setCheckbox(boolean checkbox) {
this.checkbox =
+ public void setFormatter(String formatter) {
this.formatter =
+ public boolean isHidden() {
+ public void setHidden(boolean hidden) {
this.hidden =
+ public String getTitle() {
+ public String getField() {
+ public Integer getWidth() {
+ public String getRowspan() {
+ public String getColspan() {
+ public String getAlign() {
+ public boolean isSortable() {
+ public boolean isCheckbox() {
+ public String getFormatter() {
+ public String getUrl() {
+ public void setUrl(String url) {
this.url =
+ public String getFunname() {
+ public void setFunname(String funname) {
this.funname =
+ public String getDictionary() {
+ public void setDictionary(String dictionary) {
this.dictionary =
+ public String getQueryMode() {
return queryM
+ public void setQueryMode(String queryMode) {
this.queryMode = queryM
+ public String getReplace() {
+ public void setReplace(String replace) {
this.replace =
+ public boolean isAutoLoadData() {
return autoLoadD
+ public void setAutoLoadData(boolean autoLoadData) {
this.autoLoadData = autoLoadD
+ public boolean isFrozenColumn() {
return frozenC
+ public void setFrozenColumn(boolean frozenColumn) {
this.frozenColumn = frozenC
+ public String getExtend() {
+ public void setExtend(String extend) {
this.extend =
+ public String getStyle() {
+ public void setStyle(String style) {
this.style =
+ public boolean isAutocomplete() {
+ public void setAutocomplete(boolean autocomplete) {
this.autocomplete =
+ public String getExtendParams() {
return extendP
+ public void setExtendParams(String extendParams) {
this.extendParams = extendP
Index: vo/easyui/TreeSelect.java
===================================================================
--- vo/easyui/TreeSelect.java (revision 0)
+++ vo/easyui/TreeSelect.java (revision 92)
@@ -0,0 +1,46 @@
+package org.jeecgframework.tag.vo.
+import java.io.W
+import javax.servlet.jsp.tagext.TagS
+public class TreeSelect extends TagSupport {
+ /*protected S
+ protected S
+ protected S
+ protected S
+ protected S
+ protected S ?
+ public void setWidth(String width) {
this.width =
+ public void setId(String id) {
+ public void setPid(String pid) {
this.pid =
+ public void setName(String name) {
this.name =
+ public void setText(String text) {
this.text =
+ public void setValue(String value) {
this.value =
+ public String end(Writer writer, String body) {
StringBuffer sb = new StringBuffer();
return sb.toString();
Index: vo/datatable/DataTableReturn.java
===================================================================
--- vo/datatable/DataTableReturn.java (revision 0)
+++ vo/datatable/DataTableReturn.java (revision 92)
@@ -0,0 +1,97 @@
+package org.jeecgframework.tag.vo.
+import java.util.L
+ * DataTables期望的返回数据格式
+ * @author
上午11:23:17
+public class DataTableReturn {
* 过滤前总记录数
+ private Integer iTotalR
* 过滤后总记录数
+ private Integer iTotalDisplayR
* 页面发来的参数,原样返回
+ private Integer sE
* 返回的具体数据
+ private List&?& aaD
* @return 过滤前总记录数
+ public Integer getiTotalRecords() {
return iTotalR
* @param iTotalRecords
过滤前总记录数
+ public void setiTotalRecords(Integer iTotalRecords) {
this.iTotalRecords = iTotalR
* @return 过滤后总记录数
+ public Integer getiTotalDisplayRecords() {
return iTotalDisplayR
* @param iTotalDisplayRecords
过滤后总记录数
+ public void setiTotalDisplayRecords(Integer iTotalDisplayRecords) {
this.iTotalDisplayRecords = iTotalDisplayR
* @return 页面发来的参数,原样返回
+ public Integer getsEcho() {
* @param sEcho
页面发来的参数,原样返回
+ public void setsEcho(Integer sEcho) {
this.sEcho = sE
* @return 返回的具体数据
+ public List&?& getAaData() {
return aaD
* @param aaData
返回的具体数据
+ public void setAaData(List&?& aaData) {
this.aaData = aaD
+ public DataTableReturn(Integer iTotalRecords, Integer iTotalDisplayRecords,
Integer sEcho, List&?& aaData) {
this.iTotalRecords = iTotalR
this.iTotalDisplayRecords = iTotalDisplayR
this.sEcho = sE
this.aaData = aaD
Index: vo/datatable/FilterInfo.java
===================================================================
--- vo/datatable/FilterInfo.java (revision 0)
+++ vo/datatable/FilterInfo.java (revision 92)
@@ -0,0 +1,50 @@
+package org.jeecgframework.tag.vo.
+ * 过滤查找
+ * @author
下午3:07:40
+public class FilterInfo {
* 查找的列名
+ private S
* 查找的值
+ private S
* @return 查找的列名
+ public String getName() {
* @param name
查找的列名
+ public void setName(String name) {
this.name =
* @return 查找的值
+ public String getSearch() {
* @param search
+ public void setSearch(String search) {
this.search =
Index: vo/datatable/SortInfo.java
===================================================================
--- vo/datatable/SortInfo.java (revision 0)
+++ vo/datatable/SortInfo.java (revision 92)
@@ -0,0 +1,49 @@
+package org.jeecgframework.tag.vo.
+ * 排序值
+ * @author
下午3:07:40
+public class SortInfo {
* 排序列名
+ private Integer columnId;
* desc or asc
+ private SortDirection sortO
* @return 排序列名
+ public Integer getColumnId() {
return columnId;
* @param columnId
+ public void setColumnId(Integer columnId) {
this.columnId = columnId;
* @return desc or asc
+ public SortDirection getSortOrder() {
return sortO
* @param sortOrder
desc or asc
+ public void setSortOrder(SortDirection sortOrder) {
this.sortOrder = sortO
Index: vo/datatable/DataTables.java
===================================================================
--- vo/datatable/DataTables.java (revision 0)
+++ vo/datatable/DataTables.java (revision 92)
@@ -0,0 +1,199 @@
+package org.jeecgframework.tag.vo.
+import java.text.MessageF
+import javax.servlet.http.HttpServletR
+public class DataTables {
+ private HttpServletR // 内部使用的 Request 对象
+ private String sEchoParameter = &sEcho&;
+ // 起始索引和长度
+ private String iDisplayStartParameter = &iDisplayStart&;
+ private String iDisplayLengthParameter = &iDisplayLength&;
+ private String iColumnsParameter = &iColumns&;
+ private String sColumnsParameter = &sColumns&;
+ private String sC
+ // 参与排序列数
+ private String iSortingColsParameter = &iSortingCols&;
+ private String iSortColPrefixParameter = &iSortCol_&; // 排序列的索引
+ private String sSortDirPrefixParameter = &sSortDir_&; // 排序的方向
// asc, desc
+ // 每一列的可排序性
+ private String bSortablePrefixParameter = &bSortable_&;
+ // 全局搜索
+ private String sSearchParameter = &sSearch&;
+ private String bRegexParameter = &bRegex&;
+ // 每一列的搜索
+ private String bSearchablePrefixParameter = &bSearchable_&;
+ private String sSearchPrefixParameter = &sSearch_&;
+ private String bEscapeRegexPrefixParameter = &bRegex_&;
+ public SortInfo[] getSortColumns() {
return sortC
+ public void setSortColumns(SortInfo[] sortColumns) {
this.sortColumns = sortC
+ public int getColumnCount() {
return ColumnC
+ public void setColumnCount(int columnCount) {
ColumnCount = columnC
+ public ColumnInfo[] getColumns() {
+ public void setColumns(ColumnInfo[] columns) {
this.columns =
+ public String getSearch() {
+ public void setSearch(String search) {
this.search =
+ public Boolean getRegex() {
+ public void setRegex(Boolean regex) {
this.regex =
+ public Integer getEcho() {
+ public int getDisplayStart() {
return displayS
+ public int getDisplayLength() {
return displayL
+ public int getSortingCols() {
return sortingC
+ private I
+ private int displayS
+ private int displayL
+ // 参与排序的列
+ private int sortingC
+ public int iSortingC
+ // 排序列
+ private SortInfo[] sortC
+ private int ColumnC
+ private ColumnInfo[]
+ private S
+ private B
+ public void DataTablePram(HttpServletRequest httpRequest) {
this.request = httpR
+ public DataTables(HttpServletRequest request) // 用于 MVC 模式下的构造函数
this.request =
this.echo = this.ParseIntParameter(sEchoParameter);
this.displayStart = this.ParseIntParameter(iDisplayStartParameter);
this.displayLength = this.ParseIntParameter(iDisplayLengthParameter);
this.sortingCols = this.ParseIntParameter(iSortingColsParameter);
this.search = this.ParseStringParameter(sSearchParameter);
this.regex = this.ParseStringParameter(bRegexParameter) == &true&;
// 排序的列
int count = sortingC
this.sortColumns = new SortInfo[count];
MessageFormat formatter = new MessageFormat(&&);
for (int i = 0; i & i++) {
SortInfo sortInfo = new SortInfo();
sortInfo.setColumnId(this.ParseIntParameter(formatter.format(&iSortCol_{0}&, i)));
String aString = this.ParseStringParameter(formatter.format(&sSortDir_{0}&, i));
if (this.ParseStringParameter(formatter.format(&sSortDir_{0}&, i)).equals(&desc&)) {
sortInfo.setSortOrder(SortDirection.asc);
sortInfo.setSortOrder(SortDirection.desc);
this.sortColumns[i] = sortI
this.ColumnCount = this.ParseIntParameter(iColumnsParameter);
count = this.ColumnC
this.columns = new ColumnInfo[count];
String[] names = this.ParseStringParameter(sColumnsParameter).split(&,&);
this.sColumns = this.ParseStringParameter(sColumnsParameter);
for (int i = 0; i & names. i++) {
ColumnInfo col = new ColumnInfo();
col.setName(names[i]);
col.setSortable(this.ParseBooleanParameter(formatter.format(&bSortable_{0}&, i)));
col.setSearchable(this.ParseBooleanParameter(formatter.format(&bSearchable_{0}&, i)));
col.setSearch(this.ParseStringParameter(formatter.format(&sSearch_{0}&, i)));
col.setRegex(this.ParseStringParameter(formatter.format(&bRegex_{0}&, i)) == &true&);
columns[i] =
+ public String getsColumns() {
+ public void setsColumns(String sColumns) {
this.sColumns = sC
+ private int ParseIntParameter(String name) // 解析为整数
int result = 0;
String parameter = this.request.getParameter(name);
if (parameter != null) {
result = Integer.parseInt(parameter);
+ private String ParseStringParameter(String name) // 解析为字符串
return this.request.getParameter(name);
+ private Boolean ParseBooleanParameter(String name) // 解析为布尔类型
Boolean result =
String parameter = this.request.getParameter(name);
if (parameter != null) {
result = Boolean.parseBoolean(parameter);
Index: vo/datatable/SortDirection.java
===================================================================
--- vo/datatable/SortDirection.java (revision 0)
+++ vo/datatable/SortDirection.java (revision 92)
@@ -0,0 +1,12 @@
+package org.jeecgframework.tag.vo.
+* @Description: TODO(排序定义)
+* asc 升序
+* @author
+* desc 降序
+public enum SortDirection {
+ asc, // 升序
Index: vo/datatable/ColumnInfo.java
===================================================================
--- vo/datatable/ColumnInfo.java (revision 0)
+++ vo/datatable/ColumnInfo.java (revision 92)
@@ -0,0 +1,100 @@
+package org.jeecgframework.tag.vo.
+ * 列信息
+ * @author
下午3:07:40
+public class ColumnInfo {
+ private S
* 是否正则
+ private B
+ private B
+ private S
+ public String getSearch() {
+ public void setSearch(String search) {
this.search =
+ private B
* @return 列名
+ public String getName() {
* @param name
+ public void setName(String name) {
this.name =
* @return 是否正则
+ public Boolean getRegex() {
* @param regex
+ public void setRegex(Boolean regex) {
this.regex =
* @return 查找
+ public Boolean getSearchable() {
* @param searchable
+ public void setSearchable(Boolean searchable) {
this.searchable =
* @return 排序
+ public Boolean getSortable() {
* @param sortable
+ public void setSortable(Boolean sortable) {
this.sortable =
Index: core/easyui/DictSelectTag.java
===================================================================
--- core/easyui/DictSelectTag.java (revision 0)
+++ core/easyui/DictSelectTag.java (revision 92)
@@ -0,0 +1,382 @@
+package org.jeecgframework.tag.core.
+import java.io.IOE
+import java.util.L
+import java.util.M
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.JspW
+import javax.servlet.jsp.tagext.TagS
+import org.jeecgframework.web.system.pojo.base.TST
+import org.jeecgframework.web.system.pojo.base.TST
+import org.jeecgframework.web.system.service.SystemS
+import org.apache.commons.lang.StringU
+import org.jeecgframework.core.util.ApplicationContextU
+import org.springframework.beans.factory.annotation.A
+import com.google.gson.G
+ * 选择下拉框
+ * @author: lianglaiyang
+ * @date: 日期:
+ * @version 1.0
+public class DictSelectTag extends TagSupport {
+ private static final long serialVersionUID = 1;
+ private String typeGroupC // 数据字典类型
+ private S // 选择表单的Name EAMPLE:&select name=&selectName& id = &&
+ private S // 选择表单ID EAMPLE:&select name=&selectName& id = && /&
+ private String defaultV // 默认值
+ private String divC // DIV样式
+ private String labelC // Label样式
+ private S // label显示值
+ private boolean hasLabel = // 是否显示label
+ private S// 控件类型select|radio|checkbox
+ private String dictT// 自定义字典表
+ private String dictF// 自定义字典表的匹配字段-字典的编码值
+ private String dictT// 自定义字典表的显示文本-字典的显示值
+ private String extendJ//扩展参数
+ @Autowired
+ private static SystemService systemS
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
JspWriter out = this.pageContext.getOut();
out.print(end().toString());
} catch (IOException e) {
e.printStackTrace();
return EVAL_PAGE;
+ public StringBuffer end() {
StringBuffer sb = new StringBuffer();
if (StringUtils.isBlank(divClass)) {
divClass = &form&; // 默认form样式
if (StringUtils.isBlank(labelClass)) {
labelClass = &Validform_label&; // 默认label样式
if (dictTable != null) {
List&Map&String, Object&& list = queryDic();
if (&radio&.equals(type)) {
for (Map&String, Object& map : list) {
radio(map.get(&text&).toString(), map.get(&field&)
.toString(), sb);
} else if (&checkbox&.equals(type)) {
for (Map&String, Object& map : list) {
checkbox(map.get(&text&).toString(), map.get(&field&)
.toString(), sb);
} else if(&text&.equals(type)){
for (Map&String, Object& map : list) {
text(map.get(&text&).toString(), map.get(&field&)
.toString(), sb);
sb.append(&&select name=\&& + field + &\&&);
//增加扩展属性
if (!StringUtils.isBlank(this.extendJson)) {
Gson gson = new Gson();
Map&String, String& mp = gson.fromJson(extendJson, Map.class);
for(Map.Entry&String, String& entry: mp.entrySet()) {
sb.append(entry.getKey()+&=\&& + entry.getValue() + &\&&);
if (!StringUtils.isBlank(this.id)) {
sb.append(& id=\&& + id + &\&&);
sb.append(&&&);
for (Map&String, Object& map : list) {
select(map.get(&text&).toString(), map.get(&field&)
.toString(), sb);
sb.append(&&/select&&);
TSTypegroup typeGroup = TSTypegroup.allTypeGroups
.get(this.typeGroupCode.toLowerCase());
List&TSType& types = TSTypegroup.allTypes.get(this.typeGroupCode
.toLowerCase());
if (hasLabel) {
sb.append(&&div class=\&& + divClass + &\&&&);
sb.append(&&label class=\&& + labelClass + &\& &&);
if (typeGroup != null) {
if (hasLabel) {
if (StringUtils.isBlank(this.title)) {
this.title = typeGroup.getTypegroupname();
sb.append(this.title + &:&);
sb.append(&&/label&&);
if (&radio&.equals(type)) {
for (TSType type : types) {
radio(type.getTypename(), type.getTypecode(), sb);
} else if (&checkbox&.equals(type)) {
for (TSType type : types) {
checkbox(type.getTypename(), type.getTypecode(), sb);
}else if (&text&.equals(type)) {
for (TSType type : types) {
text(type.getTypename(), type.getTypecode(), sb);
sb.append(&&select name=\&& + field + &\&&);
//增加扩展属性
if (!StringUtils.isBlank(this.extendJson)) {
Gson gson = new Gson();
Map&String, String& mp = gson.fromJson(extendJson, Map.class);
for(Map.Entry&String, String& entry: mp.entrySet()) {
sb.append(& &+entry.getKey()+&=\&& + entry.getValue() + &\&&);
if (!StringUtils.isBlank(this.id)) {
sb.append(& id=\&& + id + &\&&);
sb.append(&&&);
for (TSType type : types) {
select(type.getTypename(), type.getTypecode(), sb);
sb.append(&&/select&&);
if (hasLabel) {
sb.append(&&/div&&);
* 文本框方法
* @param name
* @param code
* @param sb
+ private void text(String name, String code, StringBuffer sb) {
if (code.equals(this.defaultVal)) {
sb.append(&&input name='&+field+&'&+& id='&+id+&' value='&+name+&' readOnly = 'readOnly' /&&);
* 单选框方法
* @作者:Alexander
* @param name
* @param code
* @param sb
+ private void radio(String name, String code, StringBuffer sb) {
if (code.equals(this.defaultVal)) {
sb.append(&&input type=\&radio\& name=\&& + field
+ &\& checked=\&checked\& value=\&& + code + &\&&);
if (!StringUtils.isBlank(this.id)) {
sb.append(& id=\&& + id + &\&&);
sb.append(& /&&);
sb.append(&&input type=\&radio\& name=\&& + field + &\& value=\&&
+ code + &\&&);
if (!StringUtils.isBlank(this.id)) {
sb.append(& id=\&& + id + &\&&);
sb.append(& /&&);
sb.append(name);
* 复选框方法
* @作者:Alexander
* @param name
* @param code
* @param sb
+ private void checkbox(String name, String code, StringBuffer sb) {
String[] values = this.defaultVal.split(&,&);
Boolean checked =
for (int i = 0; i & values. i++) {
String value = values[i];
if (code.equals(value)) {
if(checked){
sb.append(&&input type=\&checkbox\& name=\&& + field
+ &\& checked=\&checked\& value=\&& + code + &\&&);
if (!StringUtils.isBlank(this.id)) {
sb.append(& id=\&& + id + &\&&);
sb.append(& /&&);
sb.append(&&input type=\&checkbox\& name=\&& + field
+ &\& value=\&& + code + &\&&);
if (!StringUtils.isBlank(this.id)) {
sb.append(& id=\&& + id + &\&&);
sb.append(& /&&);
sb.append(name);
* 选择框方法
* @作者:Alexander
* @param name
* @param code
* @param sb
+ private void select(String name, String code, StringBuffer sb) {
if (code.equals(this.defaultVal)) {
sb.append(& &option value=\&& + code + &\& selected=\&selected\&&&);
sb.append(& &option value=\&& + code + &\&&&);
sb.append(name);
sb.append(& &/option&&);
* 查询自定义数据字典
* @作者:Alexander
+ private List&Map&String, Object&& queryDic() {
String sql = &select & + dictField + & as field,& + dictText
+ & as text from & + dictT
systemService = ApplicationContextUtil.getContext().getBean(
SystemService.class);
List&Map&String, Object&& list = systemService.findForJdbc(sql);
+ public String getTypeGroupCode() {
return typeGroupC
+ public void setTypeGroupCode(String typeGroupCode) {
this.typeGroupCode = typeGroupC
+ public String getId() {
+ public void setId(String id) {
+ public String getDefaultVal() {
return defaultV
+ public void setDefaultVal(String defaultVal) {
this.defaultVal = defaultV
+ public String getDivClass() {
return divC
+ public void setDivClass(String divClass) {
this.divClass = divC
+ public String getLabelClass() {
return labelC
+ public void setLabelClass(String labelClass) {
this.labelClass = labelC
+ public String getField() {
+ public void setField(String field) {
this.field =
+ public String getTitle() {
+ public void setTitle(String title) {
this.title =
+ public boolean isHasLabel() {
return hasL
+ public void setHasLabel(boolean hasLabel) {
this.hasLabel = hasL
+ public String getType() {
+ public void setType(String type) {
this.type =
+ public String getDictTable() {
return dictT
+ public void setDictTable(String dictTable) {
this.dictTable = dictT
+ public String getDictField() {
return dictF
+ public void setDictField(String dictField) {
this.dictField = dictF
+ public String getDictText() {
return dictT
+ public void setDictText(String dictText) {
this.dictText = dictT
+ public String getExtendJson() {
return extendJ
+ public void setExtendJson(String extendJson) {
this.extendJson = extendJ
Index: core/easyui/UploadTag.java
===================================================================
--- core/easyui/UploadTag.java (revision 0)
+++ core/easyui/UploadTag.java (revision 92)
@@ -0,0 +1,225 @@
+package org.jeecgframework.tag.core.
+import java.io.IOE
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.JspW
+import javax.servlet.jsp.tagext.TagS
+ * 类描述:上传标签
+ * 张代浩
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class UploadTag extends TagSupport {
+ private static final long serialVersionUID = 1L;
+ protected S// ID
+ protected S//url
+ protected S//控件名称
+ protected String formD//参数名称
+ protected String extend=&&;//上传文件的扩展名
+ protected String buttonText=&浏览&;//按钮文本
+ protected boolean multi=//是否多文件
+ protected String queueID=&filediv&;//文件容器ID
+ protected boolean dialog=//是否是弹出窗口模式
+ protected S
+ protected boolean auto=//是否自动上传
+ protected String onUploadS//上传成功处理函数
+ protected boolean view=//生成查看删除链接
+ public void setView(boolean view) {
this.view =
+ public void setOnUploadSuccess(String onUploadSuccess) {
this.onUploadSuccess = onUploadS
+ public void setAuto(boolean auto) {
this.auto =
+ public void setCallback(String callback) {
this.callback =
+ public void setDialog(boolean dialog) {
this.dialog =
+ public void setQueueID(String queueID) {
this.queueID = queueID;
+ public void setButtonText(String buttonText) {
this.buttonText = buttonT
+ public void setMulti(boolean multi) {
this.multi =
+ public void setUploader(String uploader) {
this.uploader =
+ public void setName(String name) {
this.name =
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
JspWriter out = this.pageContext.getOut();
out.print(end().toString());
out.flush();
} catch (IOException e) {
e.printStackTrace();
return EVAL_PAGE;
+ public StringBuffer end() {
StringBuffer sb = new StringBuffer();
if(&pic&.equals(extend))
extend=&*.*,*.*.*.*.*.tif&;
if(extend.equals(&office&))
extend=&*.*.*.*.*.*.*.*.htm&;
sb.append(&&link rel=\&stylesheet\& href=\&plug-in/uploadify/css/uploadify.css\& type=\&text/css\&&&/link&&);
sb.append(&&script type=\&text/javascript\& src=\&plug-in/uploadify/jquery.uploadify-3.1.js\&&&/script&&);
sb.append(&&script type=\&text/javascript\& src=\&plug-in/tools/Map.js\&&&/script&&);
sb.append(&&script type=\&text/javascript\&&&
+&var flag =&
+&var fileitem=\&\&;&
+&var fileKey=\&\&;&
+&var serverMsg=\&\&;&
+&var m = new Map();&
+ &$(function(){&
+&$(\'#&+id+&\').uploadify({&
+&buttonText:\'&+buttonText+&\',&
+&auto:&+auto+&,&
+&progressData:\'speed\',&
+&multi:&+multi+&,&
+&height:25,&
+&overrideEvents:[\'onDialogClose\'],&
+&fileTypeDesc:\'文件格式:\',&
+&queueID:\'&+queueID+&\',&
+&fileTypeExts:\'&+extend+&\',&
+&fileSizeLimit:\'15MB\',&
+&swf:\'plug-in/uploadify/uploadify.swf\', &
+&uploader:\'&+getUploader()
+&onUploadStart : function(file) { &);
if (formData!=null) {
String[] paramnames=formData.split(&,&);
for (int i = 0; i & paramnames. i++) {
String paramname=paramnames[i];
sb.append(&var &+paramname+&=$(\'#&+paramname+&\').val();&);
sb.append(&$(\'#&+id+&\').uploadify(\&settings\&, \&formData\&, {&);
for (int i = 0; i & paramnames. i++) {
String paramname=paramnames[i];
if (i==paramnames.length-1) {
sb.append(&'&+paramname+&':&+paramname+&&);
sb.append(&'&+paramname+&':&+paramname+&,&);
sb.append(&});&);
sb.append(&} ,&
+&onQueueComplete : function(queueData) { &);
if(dialog)
sb.append(&var win = frameElement.api.&
+&win.reloadTable();&
+&win.tip(serverMsg);&
+&frameElement.api.close();&);
if(callback!=null)
sb.append(&&+callback+&();&);
sb.append(&$(\&#viewmsg\&).html(m.toString());&);
sb.append(&$(\&#fileKey\&).val(fileKey);&);
sb.append(&},&);
//上传成功处理函数
sb.append(&onUploadSuccess : function(file, data, response) {&);
sb.append(&var d=$.parseJSON(data);&);
sb.append(&var fileitem=\&&span id=\'\&+d.attributes.id+\&\'&&a href=\'#\' onclick=openwindow(\'文件查看\',\'\&+d.attributes.viewhref+\&\',\'70%\',\'80%\') title=\'查看\'&\&+d.attributes.name+\&&/a&&img border=\'0\' onclick=confuploadify(\'\&+d.attributes.delurl+\&\',\'\&+d.attributes.id+\&\') title=\'删除\' src=\'plug-in/uploadify/img/uploadify-cancel.png\' widht=\'15\' height=\'15\'&&&&/span&\&;&);
sb.append(&m.put(d.attributes.id,fileitem);&);
sb.append(&fileKey=d.attributes.fileK&);
if(onUploadSuccess!=null)
sb.append(onUploadSuccess+&(d,file,response);&);
sb.append(&if(d.success){&);
sb.append(&var win = frameElement.api.&);
sb.append(&win.tip(d.msg);&);
sb.append(&serverMsg = d.&);
sb.append(&}&);
sb.append(&},&);
sb.append(&onFallback : function(){tip(\&您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试\&)},&);
sb.append(&onSelectError : function(file, errorCode, errorMsg){&);
sb.append(&switch(errorCode) {&);
sb.append(&case -100:&);
sb.append(&tip(\&上传的文件数量已经超出系统限制的\&+$(\'#&+id+&\').uploadify(\'settings\',\'queueSizeLimit\')+\&个文件!\&);&);
sb.append(&&);
sb.append(&case -110:&
+&tip(\&文件 [\&+file.name+\&] 大小超出系统限制的\&+$(\'#&+id+&\').uploadify(\'settings\',\'fileSizeLimit\')+\&大小!\&);&
+&case -120:&
+&tip(\&文件 [\&+file.name+\&] 大小异常!\&);&
+&case -130:&
+&tip(\&文件 [\&+file.name+\&] 类型不正确!\&);&
sb.append(&},&
+&onUploadProgress : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) { &
//+&tip('&span&文件上传成功:'+totalBytesUploaded/1024 + ' KB 已上传 ,总数' + totalBytesTotal/1024 + ' KB.&/span&');&
+&function upload() {&
+& $(\'#&+id+&\').uploadify('upload', '*');&
+&function cancel() {&
+&$(\'#&+id+&\').uploadify('cancel', '*');&
+&&/script&&);
sb.append(&&span id=\&&+id+&span\&&&input type=\&file\& name=\&&+name+&\& id=\&&+id+&\& /&&/span&&);
sb.append(&&span id=\&viewmsg\&&&/span&&);
sb.append(&&input type=\&hidden\& name=\&fileKey\& id=\&fileKey\& /&&);
* 获取上传路径,修改jsessionid传不到后台的bug jueyue ---
+ private String getUploader() {
return uploader+&&sessionId=&+pageContext.getSession().getId()+&',&;
+ public void setId(String id) {
+ public void setFormData(String formData) {
this.formData = formD
+ public void setExtend(String extend) {
this.extend =
Index: core/easyui/ColorChangeTag.java
===================================================================
--- core/easyui/ColorChangeTag.java (revision 0)
+++ core/easyui/ColorChangeTag.java (revision 92)
@@ -0,0 +1,35 @@
+package org.jeecgframework.tag.core.
+import java.io.IOE
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.JspW
+import javax.servlet.jsp.tagext.TagS
+ * 类描述:改变HTML控件颜色
+ * @author:
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class ColorChangeTag extends TagSupport {
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
JspWriter out = this.pageContext.getOut();
out.print(end().toString());
} catch (IOException e) {
e.printStackTrace();
return EVAL_PAGE;
+ public StringBuffer end() {
StringBuffer sb = new StringBuffer();
Index: core/easyui/DataGridOpenOptTag.java
===================================================================
--- core/easyui/DataGridOpenOptTag.java (revision 0)
+++ core/easyui/DataGridOpenOptTag.java (revision 92)
@@ -0,0 +1,56 @@
+package org.jeecgframework.tag.core.
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.tagext.T
+import javax.servlet.jsp.tagext.TagS
+ * 类描述:列表弹出窗操作项处理标签
+ @author 张代浩
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class DataGridOpenOptTag extends TagSupport {
+ protected S//弹出页面地址
+ protected String width=&100%&;//弹出窗口宽度
+ protected String height=&100%&;//弹出窗口高度
+ protected S//链接标题
+ private S//判断链接是否显示的表达式
+ private String operationC//按钮的操作Code
+ private String openModel = &OpenWin&; //弹出方式
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
Tag t = findAncestorWithClass(this, DataGridTag.class);
DataGridTag parent = (DataGridTag)
parent.setOpenUrl(url,title,width,height,exp,operationCode,openModel);
return EVAL_PAGE;
+ public void setWidth(String width) {
this.width =
+ public void setHeight(String height) {
this.height =
+ public void setExp(String exp) {
this.exp =
+ public void setUrl(String url) {
this.url =
+ public void setTitle(String title) {
this.title =
+ public void setOperationCode(String operationCode) {
this.operationCode = operationC
+ public void setOpenModel(String openModel) {
this.openModel = openM
Index: core/easyui/CkfinderTag.java
===================================================================
--- core/easyui/CkfinderTag.java (revision 0)
+++ core/easyui/CkfinderTag.java (revision 92)
@@ -0,0 +1,120 @@
+package org.jeecgframework.tag.core.
+import java.io.IOE
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.JspW
+import javax.servlet.jsp.tagext.TagS
+import org.jeecgframework.core.util.StringU
+ * ckfinder标签
+ * @author Alexander
+public class CkfinderTag extends TagSupport {
+ private static final long serialVersionUID = 1L;
+ protected S// 属性名称
+ protected S// 默认值
+ protected S// 显示图片宽(上传类型为Images时)
+ protected S// 显示图片高(上传类型为Images时)
+ protected String buttonC// 按钮样式
+ protected String buttonV// 按钮名称
+ protected String uploadT// 上传类型(Images,Files,Flash)
+ public String getButtonValue() {
return buttonV
+ public void setButtonValue(String buttonValue) {
this.buttonValue = buttonV
+ public String getName() {
+ public void setName(String name) {
this.name =
+ public String getValue() {
+ public void setValue(String value) {
this.value =
+ public String getWidth() {
+ public void setWidth(String width) {
this.width =
+ public String getHeight() {
+ public void setHeight(String height) {
this.height =
+ public String getButtonClass() {
return buttonC
+ public void setButtonClass(String buttonClass) {
this.buttonClass = buttonC
+ public String getUploadType() {
return uploadT
+ public void setUploadType(String uploadType) {
this.uploadType = uploadT
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
JspWriter out = this.pageContext.getOut();
out.print(end().toString());
out.flush();
} catch (IOException e) {
e.printStackTrace();
return EVAL_PAGE;
+ public StringBuffer end() {
StringBuffer sb = new StringBuffer();
if (&Images&.equals(uploadType)) {
sb.append(&&img src=\&& + value + &\& width=\&& + width
+ &\& height=\&& + height + &\& id=\&& + name + &_herf\& &);
if (StringUtil.isEmpty(value))
sb.append(&hidden=\&hidden\&&);
sb.append(& /&&);
sb.append(&&a href=\&& + value + &\& id=\&& + name + &_herf\&&&/a&&);
sb.append(&&script type=\&text/javascript\&&decode(\&& + value
+ &\&, \&& + name + &_herf\&)&/script&&);
sb.append(&&input type=\&hidden\& id=\&& + name + &_input\& name=\&&
+ name + &\& value=\&& + value + &\&&&);
sb.append(&&input class=\&& + buttonClass
+ &\& type=\&button\& value=\&& + buttonValue
+ &\& onclick=\&browse('& + name + &_input','& + name
+ &_herf','& + uploadType + &')\&&&);
Index: core/easyui/DataGridDelOptTag.java
===================================================================
--- core/easyui/DataGridDelOptTag.java (revision 0)
+++ core/easyui/DataGridDelOptTag.java (revision 92)
@@ -0,0 +1,51 @@
+package org.jeecgframework.tag.core.
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.tagext.T
+import javax.servlet.jsp.tagext.TagS
+ * 类描述:列表删除操作项标签
+ * @author 张代浩
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class DataGridDelOptTag extends TagSupport {
+ protected S
+ protected S
+ private S//询问链接的提示语
+ private S//判断链接是否显示的表达式
+ private S//自定义函数名称
+ private String operationC//按钮的操作Code
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
Tag t = findAncestorWithClass(this, DataGridTag.class);
DataGridTag parent = (DataGridTag)
parent.setDelUrl(url, title, message, exp, funname,operationCode);
return EVAL_PAGE;
+ public void setFunname(String funname) {
this.funname =
+ public void setExp(String exp) {
this.exp =
+ public void setUrl(String url) {
this.url =
+ public void setTitle(String title) {
this.title =
+ public void setMessage(String message) {
this.message =
+ public void setOperationCode(String operationCode) {
this.operationCode = operationC
Index: core/easyui/TabsTag.java
===================================================================
--- core/easyui/TabsTag.java (revision 0)
+++ core/easyui/TabsTag.java (revision 92)
@@ -0,0 +1,188 @@
+package org.jeecgframework.tag.core.
+import java.io.IOE
+import java.util.ArrayL
+import java.util.L
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.JspW
+import javax.servlet.jsp.tagext.TagS
+import org.jeecgframework.core.util.oConvertU
+import org.jeecgframework.tag.vo.easyui.T
+ * 类描述:选项卡标签
+ * 张代浩
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class TabsTag extends TagSupport {
+ private S// 容器ID
+ private S// 宽度
+ private S// 高度
+ p// 简洁模式
+ private boolean fit =// 铺满浏览器
+ pr// 边框
+ private String scrollI// 滚动增量
+ private String scrollD// 滚动时间
+ p// 工具栏
+ private boolean tabs =// 是否创建父容器
+ private boolean iframe =// 是否是iframe方式
+ private String tabPosition = &top&;// 选项卡位置
+ public void setIframe(boolean iframe) {
this.iframe =
+ public void setTabs(boolean tabs) {
this.tabs =
+ public void setId(String id) {
+ public void setWidth(String width) {
this.width =
+ public void setHeigth(String heigth) {
this.heigth =
+ public void setPlain(boolean plain) {
this.plain =
+ public void setFit(boolean fit) {
this.fit =
+ public void setBorder(boolean border) {
this.border =
+ public void setScrollIncrement(String scrollIncrement) {
this.scrollIncrement = scrollI
+ public void setScrollDuration(String scrollDuration) {
this.scrollDuration = scrollD
+ public void setTools(boolean tools) {
this.tools =
+ public void setTabPosition(String tabPosition) {
this.tabPosition = tabP
+ public void setTabList(List&Tab& tabList) {
this.tabList = tabL
+ private List&Tab& tabList = new ArrayList&Tab&();
+ public int doStartTag() throws JspTagException {
tabList.clear();
return EVAL_PAGE;
+ public int doEndTag() throws JspTagException {
JspWriter out = this.pageContext.getOut();
out.print(end().toString());
out.flush();
} catch (IOException e) {
e.printStackTrace();
return EVAL_PAGE;
+ public StringBuffer end() {
StringBuffer sb = new StringBuffer();
if (iframe) {
sb.append(&&script type=\&text/javascript\&&&);
sb.append(&$(function(){&);
if (tabList.size() & 0) {
for (Tab tab : tabList) {
sb.append(&add& + id + &(\'& + tab.getTitle() + &\',\'& + tab.getHref() + &\',\'& + tab.getId() + &\',\'& + tab.getIcon() + &\',\'& + tab.isClosable() + &\');&);
sb.append(&function add& + id + &(title,url,id,icon,closable) {&);
sb.append(&$(\'#& + id + &\').tabs(\'add\',{&);
sb.append(&id:id,&);
sb.append(&title:title,&);
if (iframe) {
sb.append(&content:createFrame& + id + &(id),&);
sb.append(&href:url,&);
sb.append(&closable:closable=(closable =='false')?false : true,&);
sb.append(&icon:icon&);
sb.append(&});&);
sb.append(&}&);
sb.append(&$(\'#& + id + &\').tabs(&);
sb.append(&{&);
sb.append(&onSelect : function(title) {&);
sb.append(&var p = $(this).tabs(\'getTab\', title);&);
if (tabList.size() & 0) {
for (Tab tab : tabList) {
sb.append(&if (title == \'& + tab.getTitle() + &\') {&);
sb.append(&p.find(\'iframe\').attr(\'src\',&);
sb.append(&\'& + tab.getHref() + &\');}&);
sb.append(&}&);
sb.append(&});&);
sb.append(&function createFrame& + id + &(id)&);
sb.append(&{&);
sb.append(&var s = \'&iframe id=\&\'+id+\'\& scrolling=\&no\& frameborder=\&0\&
src=\&about:jeecg\& width=\&&+oConvertUtils.getString(width, &100%&)+&\& height=\&&+oConvertUtils.getString(heigth, &99.5%&)+&\&&&/iframe&\';&);
sb.append(&&);
sb.append(&}&);
sb.append(&});&);
sb.append(&&/script&&);
if (tabs) {
//增加width属性,fit属性之前写死,改为由页面设定,不填默认true
sb.append(&&div id=\&& + id + &\& tabPosition=\&& + tabPosition + &\& border=flase style=\&margin:0padding:0overflow:width:&+oConvertUtils.getString(width, &auto&)+&;\& class=\&easyui-tabs\& fit=\&&+fit+&\&&&);
if (!iframe) {
for (Tab tab : tabList) {
if (tab.getHref() != null) {
sb.append(&&div title=\&& + tab.getTitle() + &\& href=\&& + tab.getHref() + &\& style=\&margin:0padding:0overflow:\&&&/div&&);
sb.append(&&div title=\&& + tab.getTitle() + &\&
style=\&margin:0padding:0overflow:\&&&);
sb.append(&&iframe id=\&\'&+tab.getId()+&\'\& scrolling=\&no\& frameborder=\&0\&
src=\&&+tab.getIframe()+&\& width=\&&+oConvertUtils.getString(tab.getWidth(), &100%&)+&\& height=\&&+oConvertUtils.getString(tab.getHeigth(), &99.5%&)+&\&&&/iframe&\';&);
sb.append(&&/div&&);
sb.append(&&/div&&);
+ public void setTab(String id, String title,String iframe, String href, String iconCls, boolean cache, String content, String width, String heigth, boolean closable) {
Tab tab = new Tab();
tab.setId(id);
tab.setTitle(title);
tab.setHref(href);
tab.setCache(cache);
tab.setIframe(iframe);
tab.setContent(content);
tab.setHeigth(heigth);
tab.setIcon(iconCls);
tab.setWidth(width);
tab.setClosable(closable);
tabList.add(tab);
Index: core/easyui/DataGridColumnTag.java
===================================================================
--- core/easyui/DataGridColumnTag.java (revision 0)
+++ core/easyui/DataGridColumnTag.java (revision 92)
@@ -0,0 +1,178 @@
+package org.jeecgframework.tag.core.
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.tagext.T
+import javax.servlet.jsp.tagext.TagS
+ * 类描述:列表字段处理项目
+ * 张代浩
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class DataGridColumnTag extends TagSupport {
+ private static final long serialVersionUID = 1L;
+ protected S
+ protected S
+ protected I
+ protected S
+ protected S
+ protected S
+ protected boolean sortable=
+ protected S
+ protected boolean hidden=
+ protected S
+ protected S
+ protected boolean query=
+ private String queryMode = &single&;//字段查询模式:single单字段查询;scope范围查询
+ //protected boolean autoLoadData = // 列表是否自动加载数据
+ private boolean frozenColumn= // 是否是冰冻列
+ protected boolean bSearchable=
+ protected S//自定义链接
+ protected String funname=&openwindow&;//自定义函数名称
+ protected S//自定义链接传入参数字段
+ protected S //数据字典组编码
+ protected S //扩展属性
+ protected S //Td的CSS
+ protected String imageS//自定义图片显示大小
+ protected String downloadN//附件下载
+ private boolean autocomplete =//自动完成
+ private String extendP//扩展参数
+ public int doEndTag() throws JspTagException {
Tag t = findAncestorWithClass(this, DataGridTag.class);
DataGridTag parent = (DataGridTag)
parent.setColumn(title,field,width,rowspan,colspan,align,sortable,checkbox,formatter,hidden,replace,treefield,image,imageSize,query,url,funname,arg,queryMode, dictionary,frozenColumn,extend,style,downloadName,autocomplete,extendParams);
return EVAL_PAGE;
+ public void setDownloadName(String downloadName) {
this.downloadName = downloadN
+ public void setImageSize(String imageSize) {
this.imageSize = imageS
+ public void setArg(String arg) {
this.arg =
+ public void setUrl(String url) {
this.url =
+ public void setFunname(String funname) {
this.funname =
+ public void setbSearchable(boolean bSearchable) {
this.bSearchable = bS
+ public void setQuery(boolean query) {
this.query =
+ public void setImage(boolean image) {
this.image =
+ public void setTreefield(String treefield) {
this.treefield =
+ public void setReplace(String replace) {
this.replace =
+ public void setTitle(String title) {
this.title =
+ public void setField(String field) {
this.field =
+ public void setWidth(Integer width) {
this.width =
+ public void setRowspan(String rowspan) {
this.rowspan =
+ public void setColspan(String colspan) {
this.colspan =
+ public void setAlign(String align) {
this.align =
+ public void setSortable(boolean sortable) {
this.sortable =
+ public void setCheckbox(boolean checkbox) {
this.checkbox =
+ public void setFormatter(String formatter) {
this.formatter =
+ public void setHidden(boolean hidden) {
this.hidden =
+ public int doStartTag() throws JspTagException {
return EVAL_PAGE;
+ public void setDictionary(String dictionary) {
this.dictionary =
+ public String getQueryMode() {
return queryM
+ public void setQueryMode(String queryMode) {
this.queryMode = queryM
+ public boolean isFrozenColumn() {
return frozenC
+ public void setFrozenColumn(boolean frozenColumn) {
this.frozenColumn = frozenC
+ public String getExtend() {
+ public void setExtend(String extend) {
this.extend =
+ public void setStyle(String style) {
this.style =
+ public void setAutocomplete(boolean autocomplete) {
this.autocomplete =
+ public void setExtendParams(String extendParams) {
this.extendParams = extendP
Index: core/easyui/PagerUtil.java
===================================================================
--- core/easyui/PagerUtil.java (revision 0)
+++ core/easyui/PagerUtil.java (revision 92)
@@ -0,0 +1,158 @@
+package org.jeecgframework.tag.core.
+import java.util.M
+ * @author
+public class PagerUtil {
+ private int curPageNO = 1; // 当前页
+ private int rowsC // 记录行数
+ private int pageC // 页数
+ private String actionU// 目标ACTION
+ private Map&String, Object&// 封装查询条件
+ public PagerUtil(int curPageNo, int allCount, int pageSize, Map&String, Object& map,String actionUrl) {
this.curPageNO = curPageNo;
this.rowsCount = allC
this.map =
this.actionUrl=actionU
this.pageCount = (int) Math.ceil((double) allCount / pageSize);
+ // 第一页
+ public int first() {
+ // 最后一页
+ public int last() {
return pageC
+ // 上一页
+ public int previous() {
return (curPageNO - 1 & 1) ? 1 : curPageNO - 1;
+ // 下一页
+ public int next() {
return (curPageNO + 1 & pageCount) ? pageCount : curPageNO + 1;
+ // 第一页
+ public boolean isFirst() {
return (curPageNO == 1) ? true :
+ // 最后一页
+ public boolean isLast() {
return (curPageNO == pageCount) ? true :
+ protected StringBuffer getStrByImage(StringBuffer sb) {
String join = getJoin();
String conditions = getConditions();
sb.append(&&script language='javascript'&& + &\n&);
sb.append(&function commonSubmit(val){& + &\n&);
// 校验是否全由数字组成
sb.append(&var patrn=/^[0-9]{1,20}$/;& + &\n&);
sb.append(&if (!patrn.exec(val)){& + &\n&);
sb.append(& alert(\&请输入有效页号!\&);& + &\n&);
sb.append(&& + &\n&);
sb.append(& }else{& + &\n&);
sb.append(&
document.getElementById('pageGoto').href='& + actionUrl + join + &curPageNO='+val+'& + conditions + &';& + &\n&);
sb.append(&& + &\n&);
sb.append(&} & + &\n&);
sb.append(& }& + &\n&);
sb.append(&&/script&& + &\n&);
sb.append(&&&span class=pageArea id=pageArea&共&b&& + rowsCount + &&/b&条&当前第& + curPageNO + &/& + pageCount + &页&&&&);
if (isFirst())
sb.append(&&a class=\&pageFirstDisable\&
title=\&首页\& onMouseMove=\&style.cursor='hand'\&&&&/a&&a class=\&pagePreviousDisable\& title=\&上一页\&
onMouseMove=\&style.cursor='hand'\&&&&/a&&);
sb.append(&&a href='& + actionUrl + join + &curPageNO=1& + conditions + &' class=pageFirst title=首页 onMouseMove=\&style.cursor='hand'\&&&/a&&);
sb.append(&&a class=\&pagePrevious\& href='& + actionUrl + join + &curPageNO=& + previous() + conditions + &' title=\&上一页\&
onMouseMove=\&style.cursor='hand'\&)\&&&&/a&&);
if (curPageNO - pageCount == 0 || pageCount == 0 || pageCount == 1)
sb.append(&&a class=pageNextDisable
title=下一页 onMouseMove=\&style.cursor='hand'\&&&&a class=pageLastDisable title=尾页 onMouseMove=\&style.cursor='hand'\&&&&/a&&&);
sb.append(&&a class=pageNext href='& + actionUrl + join + &curPageNO=& + next() + conditions + &' title=下一页 onMouseMove=\&style.cursor='hand'\&)\&&&&/a&&);
sb.append(&&a class=pageLast href='& + actionUrl + join + &curPageNO=& + pageCount + conditions + &' title=尾页 onMouseMove=\&style.cursor='hand'\& )\&&&&/a&&);
if (pageCount == 1 || pageCount == 0) {
sb.append(& &转到:&input class=\&SmallInput\& type=text style=TEXT-ALIGN: center maxLength=4 name=\&pageroffsetll\& size=2 onKeyPress=\&if (event.keyCode == 13) return commonSubmit(document.all.pageroffsetll.value)\& & 页&&);
sb.append(&&A class=pageGoto id=pageGoto title=转到 onclick='return commonSubmit()'&&&/A&&&&/span&&);
sb.append(& &转到:&input class=SmallInput type=text style=TEXT-ALIGN: center maxLength=4 name=\&pageroffsetll\& size=2 onKeyPress=\&if (event.keyCode == 13) return commonSubmit(document.all.pageroffsetll.value)\& & 页&&);
sb.append(&&A
class=pageGoto id=pageGoto title=转到 onclick='commonSubmit(document.all.pageroffsetll.value)'&&&/A&&&/span&);
+ protected StringBuffer getStr(StringBuffer sb) {
String join = getJoin();
String conditions = getConditions();
String str = &&;
str += &&;
if (isFirst())
sb.append(&第& + curPageNO + &页&共& + pageCount + &页&首页 &);
sb.append(&第& + curPageNO + &页&共& + pageCount + &页&&a href='& + actionUrl + join + &curPageNO=1& + conditions + &'&首页&/a&&&);
sb.append(&&a href='& + actionUrl + join + &curPageNO=& + previous() + conditions + &' onMouseMove=\&style.cursor='hand'\& alt=\&上一页\&&上一页&/a&&&);
if (isLast() || rowsCount == 0)
sb.append(&尾页&&);
sb.append(&&a href='& + actionUrl + join + &curPageNO=& + next() + conditions + &' onMouseMove=\&style.cursor='hand'\& &下一页&/a&&&);
sb.append(&&a href='& + actionUrl + join + &curPageNO=& + pageCount + conditions + &'&尾页&/a&&&);
sb.append(&&共& + rowsCount + &条记录&&);
str += &&转到&select name='page' onChange=\&location='& + actionUrl + join + &curPageNO='+this.options[this.selectedIndex].value\&&&;
int begin = (curPageNO & 10) ? curPageNO - 10 : 1;
int end = (pageCount - curPageNO & 10) ? curPageNO + 10 : pageC
for (int i = i &= i++) {
if (i == curPageNO)
str += &&option value='& + i + &' selected&第& + i + &页&/option&&;
str += &&option value='& + i + &'&第& + i + &页&/option&&;
str += &&/select&&;
sb.append(str);
* &b&Summary: &/b&
getConditions(拼接组合查询条件)
+ protected String getConditions() {
String conditions = &&;
if (map != null) {
for (Map.Entry&String, Object& entry : map.entrySet()) {
conditions += &&& + entry.getKey() + &=& + entry.getValue();
* &b&Summary: &/b&
getJoin(判断连接符)
+ protected String getJoin() {
String join = &&;
if (actionUrl.indexOf(&?&) == -1) {
join = &?&;
join = &&&;
Index: core/easyui/AutocompleteTag.java
===================================================================
--- core/easyui/AutocompleteTag.java (revision 0)
+++ core/easyui/AutocompleteTag.java (revision 92)
@@ -0,0 +1,139 @@
+package org.jeecgframework.tag.core.
+import java.io.IOE
+import javax.servlet.jsp.JspTagE
+import javax.servlet.jsp.JspW
+import javax.servlet.jsp.tagext.TagS
+import org.jeecgframework.core.util.StringU
+ * 自动补全
+ * jquery ui Autocomplete
+ * @author:
+ * @date: 日期: 时间:上午10:17:45
+ * @version 1.0
+public class AutocompleteTag extends TagSupport {
+ private static final long serialVersionUID = 1L;
+ private S//控件名称
+ private String dataSource = &commonController.do?getAutoList&;//数据源
+ private Integer minLength=2;//触发提示文字长度
+ private String labelF//提示显示的字段
+ private String searchF//查询关键字字段
+ private String valueF//传递后台的字段
+ private String entityN//实体名称
+ private S//选中后调用的函数
+ private S//传入显示值
+ private S//传入隐藏域值
+ private String datatype = &*&;//数据验证类型
+ private String nullmsg = &&;//数据为空时验证
+ private String errormsg = &输入格式不对&;//数据格式不对时验证
+ private S//没有选择下拉项目的处理函数
+ private S
+ private String formatI
+ private S
+ private Integer max}

我要回帖

更多关于 jeecg自定义标签 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信