主要类说明 代码生成

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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值