当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

主要类说明 代码生成

发表于: 2015-03-23   作者:dejish   来源:转载   浏览次数:
摘要: com.gzza.framework.utils.build.Validate生成jsp时字段校验,有以下几种校验 Validate.NOT_NULL //不能为空 Validate.INT //整数,可为0或负数 Validate.POSITIVE_INT //大于0的正整数 Validate.NUMBER //数值,可有小数点 com.gzza.framework.uti
com.gzza.framework.utils.build.Validate生成jsp时字段校验,有以下几种校验
Validate.NOT_NULL //不能为空
Validate.INT //整数,可为0或负数
Validate.POSITIVE_INT //大于0的正整数
Validate.NUMBER //数值,可有小数点

com.gzza.framework.utils.build.Input生成jsp时字段输入类型,有以下几种类型
Input.TEXT //普通的input=text,为默认类型
Input.TEXTAREA //textarea
Input.KINDEDITOR //富文本输入,使用kindeditor
Input.DATE //普通的input=text,点击选择日期
Input.RADIO //radio
Input.SELECT //select
Input.AUTOCOMPLETE //自动完成输入框
Input.HIDDEN //隐藏的,input=hidden
Input.NONE //不在添加,修改页面出现


com.gzza.framework.utils.build.Display是一个注解类,该注解用在实体类属性下,用来实现三种功能
1.表格数据列表显示
2.通用的增删改查代码和jsp生成
3.国际化
zhValue //该字段的中文名称,必需
validate //该字段在添加、修改时输入的校验,默认是可以为空
input //该字段在添加、修改时的输入类型
clazz //用于用long类型的ID关连的对象,Clazz指定关连的类,需要与clazzDisplayField配套使用
clazzDisplayField //用于用long类型的ID关连的对象,Clazz指定关连的类的属性
tdStyle //该字段在表格显示时的特别样式
tdExpression ////该字段在表格显示时的需要计算才能出来的样式
autoCompleteNotMatchClear //该字段是自动完成类型时,如果输入的文本没有找到对应的结果时,是否删除已输入的文本,默认删除
list //该字段的input如果是RADIO 时,指定radio的内容,需要与listDefault配套使用
listDefault //该字段的input如果是RADIO时,如果还没有选中radio, 就默认选中listDefault指定的
dateFormat //该字段input如果是DATE时,指定日期格式,默认是yyyy-MM-dd
system //该字段哪个系统可用,默认为空,所有系统可用
scale //该字段如果是数值类型,在表格中显示时,scale可用来格式小数点显示位数
seq //该字段在表格显示时的顺序,默认按类中属性的顺序
reference //该字段如果是对象类型,用于指定需要显示对象的哪个字段,如果需要显示多个字段用逗号隔开
display //该字段在表格列表中是否显示,默认为显示
query //该字段是否做为查询条件,默认为不作为查询条件
readOnlyWhenEidt //该字段在编辑时为只读


下面以一个学生信息类,通过配置Display注解,使用Build工具生成学生信息增删改查的代码
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import com.gzza.framework.jdo.StudentEntity;
import com.gzza.framework.utils.build.Display;
import com.gzza.framework.utils.build.Excel;
import com.gzza.framework.utils.build.Input;
import com.gzza.framework.utils.build.Validate;

@Entity
@Table(name = "collection_test_student")
@Excel(name = "studentInfo") //列表可导出excel
public class Student extends StudentEntity{
	private static final long serialVersionUID = 7227301500886049495L;

	@Column(name = "NAME")
        /** 
         * zhValue = "学生名称" 为该字段指定中文,必需
         * query = true 作为查询条件
         * validate = Validate.NOT_NULL 添加、修改时,该字段不可为空
         * input = Input.TEXT 添加、修改时,该字段为普通input=text输入框
         */
	@Display(query = true, zhValue = "学生名称", validate = Validate.NOT_NULL, input = Input.TEXT)
	private String name;

	@Column(name = "AGE")
        /**
         * zhValue = "年龄" 为该字段指定中文,必需
         * validate = Validate.POSITIVE_INT 添加、修改时,该字段可以为空,但如果有值的话必须是正整数
         * 不指定input,默认为Input.TEXT
         */
	@Display(zhValue = "年龄", validate = Validate.POSITIVE_INT)
	private Integer age;

	@Column(name = "SCORE")
        /**
         * zhValue = "成绩" 为该字段指定中文,必需
         * validate = Validate.NOT_NULL + "," + Validate.NUMBER 添加、修改时,该字段不可为空,且只能为数值
         * scale = 2 在表格中显示成绩时,格式化小数点为2位
         * tdStyle = "width: 300px;{if {@score}<60}font-size:18px;color: red;{/if}在表格中显示时,指定显示宽度为300px;且分数小于60分时,用18号字体红色显示
         */
	@Display(zhValue = "成绩", validate = Validate.NOT_NULL + "," + Validate.NUMBER, scale = 2, tdStyle = "width: 300px;", tdExpression = "{if {@score}<60}font-size:14px;color: red;{/if}")
	private Double score;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CREATE_TIMESTAMP")
        /**
         * zhValue = "入学日期" 为该字段指定中文,必需
         * validate = Validate.NOT_NULL 添加、修改时,该字段不可为空
         * tdStyle = "width:100px" 在表格中显示时,指定显示宽度为100px
         * 日期还可指定dateFormat
         */
	@Display(zhValue = "入学日期", validate = Validate.NOT_NULL, tdStyle = "width:100px")
	private Date createTime = new Date();

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "TEACHER_ID")
        /**
         * reference = "name" 引用Tearcher类里的name字段,多个用逗号隔开
         * 对象引用类型时,zhValue可不填,不填的话采用Tearcher类里的name字段的zhValue,如果填的话,以填的zhValue为准
         * query = true 作为查询条件
         * input = Input.SELECT 在添加、修改时,把所有的Tearcher放在一个select里选择
         * validate = Validate.NOT_NULL 在添加、修改时,必须选择一个Tearcher
         */
	@Display(reference = "name", query = true, input = Input.SELECT, validate = Validate.NOT_NULL)
	private Tearcher tearcher;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CLASS_ID")
        /**
         * zhValue = "我的班级" 为该字段指定中文
         * reference = "name,remark" 引用Clazz 类里的name,remark字段
         * query = true 作为查询条件
         * input = Input.AUTOCOMPLETE 在添加、修改时,用自动完成控件选择老师
         * validate = Validate.NOT_NULL 在添加、修改时,必须选择一个Clazz 
         * seq = 200 指定了该字段中表格中的顺序,为200时,显示在200/10=20列
         */
	@Display(zhValue = "我的班级", reference = "name,remark", query = true, input = Input.AUTOCOMPLETE, validate = Validate.NOT_NULL, seq = 200)
	private Clazz clazz;
        
	@Column(name = "TYPE")
        /**
         * zhValue = "类型" 为该字段指定中文
         * display = false 该字段不在表格里显示
         * input = Input.NONE 在添加、修改页面不出现
         */
	@Display(zhValue = "类型", display = false, tdStyle = "width:100px", input = Input.NONE)
	private Integer type;

	@Column(name = "REMARK")
        /**
         * zhValue = "学生备注" 为该字段指定中文
         * display = false 该字段表格里不显示
         */
	@Display(zhValue = "学生备注", display = false)
	private String remark;

	@Column(name = "ENABLED")
        /**
         * zhValue = "是否启用" 为该字段指定中文
         * query = true 作为查询条件
         * tdStyle = "width:100px" 在表格中显示时,指定显示宽度为100px
         * input = Input.RADIO 在添加、修改时,为input=radio
         * list = "1:enable,0:disable" radio的内容,1为enalbe,0为disable,显示的enable和disable都是国际化过后的
         * listDefault = "1" 该字段在添加时默认的选中项
         */
	@Display(query = true, zhValue = "是否启用", tdStyle = "width:100px", input = Input.RADIO, list = "1:enable,0:disable", listDefault = "1")
	private int enabled = 1;

	public Integer getType(){
		return type;
	}

	public void setType(Integer type){
		this.type = type;
	}

	public String getRemark(){
		return remark;
	}

	public void setRemark(String remark){
		this.remark = remark;
	}

	public String getName(){
		return name;
	}

	public void setName(String name){
		this.name = name;
	}

	public Integer getAge(){
		return age;
	}

	public void setAge(Integer age){
		this.age = age;
	}

	public Double getScore(){
		return score;
	}

	public void setScore(Double score){
		this.score = score;
	}

	public Date getCreateTime(){
		return createTime;
	}

	public void setCreateTime(Date createTime){
		this.createTime = createTime;
	}

	public Tearcher getTearcher(){
		return tearcher;
	}

	public void setTearcher(Tearcher tearcher){
		this.tearcher = tearcher;
	}

	public Clazz getClazz(){
		return clazz;
	}

	public void setClazz(Clazz clazz){
		this.clazz = clazz;
	}

	public Integer getStatus(){
		return status;
	}

	public void setStatus(Integer status){
		this.status = status;
	}

	public int getEnabled(){
		return enabled;
	}

	public void setEnabled(int enabled){
		this.enabled = enabled;
	}

}

主要类说明 代码生成

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
YbSoftwareFactory目前已可快速生成ASP.NET WebForm、MVC、WinForm和WPF的解决方案源代码,所生成的
以前一直使用eclipse 自带的 export 的功能导出javadoc,功能本身还行,但是配置好了之后,要点击4次 n
基于JQuery、WebApi的ASP.NET MVC插件的代码生成项目主要技术解析 YbSoftwareFactory目前已可快速生
面向对象模型 面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度实现
其实主要用的最多的是 还是 cmd.Parameters.AddRange(paras); 这后面 的 paras 实际是一个数组 是一
T4模版生成代码的基础前面三篇基本介绍了,下面开始《用T4模版生成Dao数据持久层接口代码》工作。
文章结束给大家来个程序员笑话:[M] 用T4模版生成POCO类代码,简略,但要求数据库定义必定要有规律
今天才发现,myeclipse的uml工具这么好用,制作出来的类图既美观又大方!! 1、MyEclipse 中选择win
原理很简单,解析程序集生成时的xml描述文档。设置生成程序集时生成xml描述文档的操作如下: 程序界
本程序拥有以下新特征: 1.完全可扩充生成引擎系统,使用.Net高级特征实现该功能,针对不同数据库,只要
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号