xxx组公共组件使用和说明

  • 前端
  1. 所有的Controller    必须继承 BaseActionController     能使用基类的方法必须使用基类的方法,不需要自己再造轮子。
  2. 所有的Controller 与页面之间的交互 都封装成dto对象..后台校验都必须采用coe-boss-validate 提供的校验方法进行校验(特殊除外)--- 能抽象的校验一律在coe-boss-validate中实现

    注解

    适用的数据类型

    说明

    @AssertFalse

    Boolean, boolean

    验证注解的元素值是false

    @AssertTrue

    Boolean, boolean

    验证注解的元素值是true

    @DecimalMax(value=x)

    BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.

    验证注解的元素值小于等于@ DecimalMax指定的value值

    @DecimalMin(value=x)

    BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.

    验证注解的元素值小于等于@ DecimalMin指定的value值

    @Digits(integer=整数位数, fraction=小数位数)

    BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSequence.

    验证注解的元素值的整数位数和小数位数上限

    @Future

    java.util.Date, java.util.Calendar; Additionally supported by HV, if theJoda Time date/time API is on the class path: any implementations ofReadablePartial andReadableInstant.

    验证注解的元素值(日期类型)比当前时间晚

    @Max(value=x)

    BigDecimal, BigInteger, byte, short,int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type ofCharSequence (the numeric value represented by the character sequence is evaluated), any sub-type of Number.

    验证注解的元素值小于等于@Max指定的value值

    @Min(value=x)

    BigDecimal, BigInteger, byte, short,int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of CharSequence (the numeric value represented by the char sequence is evaluated), any sub-type of Number.

    验证注解的元素值大于等于@Min指定的value值

    @NotNull

    Any type

    验证注解的元素值不是null

    @Null

    Any type

    验证注解的元素值是null

    @Past

    java.util.Date, java.util.Calendar; Additionally supported by HV, if theJoda Time date/time API is on the class path: any implementations ofReadablePartial andReadableInstant.

    验证注解的元素值(日期类型)比当前时间早

    @Pattern(regex=正则表达式, flag=)

    String. Additionally supported by HV: any sub-type of CharSequence.

    验证注解的元素值与指定的正则表达式匹配

    @Size(min=最小值, max=最大值)

    String, Collection, Map and arrays. Additionally supported by HV: any sub-type of CharSequence.

    验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小

    @Valid

    Any non-primitive type(引用类型)

    验证关联的对象,如账户对象里有一个订单对象,指定验证订单对象

    @NotEmpty

    CharSequence,CollectionMap and Arrays

    验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)

    @Range(min=最小值, max=最大值)

    CharSequence, Collection, Map and Arrays,BigDecimal, BigInteger, CharSequence, byte, short, int, long and the respective wrappers of the primitive types

    验证注解的元素值在最小值和最大值之间

    @NotBlank

    CharSequence

    验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格

    @Length(min=下限, max=上限)

    CharSequence

    验证注解的元素值长度在min和max区间内

    @Email

    CharSequence

    验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

  3. 前后台传输请使用dto进行传输
  4. 所有的模块命名必须规范.如下:
    com.bill99.boss.intra
    com.bill99.boss.website

    com.bill99.boss.应用.模块.controller
    com.bill99.boss.应用.模块.dto
    com.bill99.boss.应用.模块.service

  5. 公共的前端模块放到coe-boss-controller
  6. 公共插件和方法函数请使用 coe-boss-utils  里面提供的
  7. 配置文件请需要分模块例如:
    context/servlet/member/context-init.xml
    context/servlet/大模块/context-模块-XXX.xml

    Controller内部函数规范

    public ModelAndView index(HttpServletRequest req, HttpServletResponse resp)
    throws Exception {
    ModelAndView m = new ModelAndView(this.viewName);
    this.query(req, m);
    return m;
    }

    private void query(HttpServletRequest req, ModelAndView m) throws Exception {
    Map<String, String> map = new HashMap<String, String>();
    map.put("orderField", "serverName");
    List<Server> dataList = this.serverService.queryServerByMap(map);
    m.addObject("dataList", dataList);
    }

     

  • 后端
  1. 数据操作请采用标准的代码生成工具来生成coe-boss-codegenerator  来生成后端代码




公共组件的使用说明

前端Controller公共的函数

/**
* 登陆用户
* @param defaultValue
* @return
*/
public String getLoginUserName(HttpServletRequest request,String defaultValue);

/**
* sso信息,包括getUserName,getUserId ,getUserCode等信息
*
* @param request
* @return
*/
public SSOInfo getSSOInfo(HttpServletRequest request) ;

/**
* <b>功能:</b>输出JSON<br>
* <b>日期:</b> 2012-6-18 <br>
*
* @param t
* @param response
*/
public <T> void toJson(T t, HttpServletResponse response);

/**
* 字符串输出
*
* @param t
* @param response
*/
public void toWriter(String t, HttpServletResponse response);

/**
* x直接在浏览器显示图片
*
* @param filePath
* 文件在本地的路径
* @param response
* @throws Exception
* @return void 返回类型
*/
public void showImage(String filePath, HttpServletResponse response);

/**
* 在浏览器端弹出下载框 进行下载
*
* @param filePath
* 服务器文件的路径
* @param response
* @param fileName
* 弹出框显示的文件名
* @throws Exception
* @return void 返回类型
*/
public void downLoad(String filePath, HttpServletResponse response,
String fileName) throws Exception;

/**
* 校验参数对象---对象必须继承BaseDto类 其他特殊校验请在vilidator中添加
* 错误信息,目前只封装成了string返回.请直接在原对象中调用getErrorMsg 获取
* 后续可以扩展为错误信息key=value形式的返回 json
* @param dto 必须继承BaseDto类
* @return true|false
* @throws Exception
*/
public <T> boolean hasErrors(T dto) throws Exception;

/**
* 获取登录用户的IP地址
* @param request
* @return ip
*/
public String getIpAddr(HttpServletRequest request);

EXL操作
/**
* Exl文件导出到处理类,支持导出到本地和 浏览器
*
* @ClassName: ExcelUtil
* @Description: TODO
* @author xianglin.mo
* @date 2015-1-4 下午03:16:05
* @version [1.0, 2015-1-4]
* @since version 1.0
*/
public class ExcelUtil extends AbstractExcel

{

创建xls

public void createExl(String sheetName, List dataList, String filePath);

/**
* 导入Excel,解析 并支持 验证 和后续通知等操作 需要自己的实现是转换对象 必须继承ExcelMode 可以实现各自的拦截器
* 如果拦截器中将对象置为空,则不返回数据。
*
* @param <T>
* exl列转换的目标对象
* @param in
* @param model
* @param className 必须继承ExcelModel基类
* @return
* @throws Exception
* @return List<T> 返回类型
*/
public <T> List<T> importExcel(InputStream in, ExcelImpDto model,
Class<T> className) throws Exception;

/**
* 导入Excel,解析 并支持 验证 和后续通知等操作 需要自己的实现是转换对象 必须继承ExcelMode 可以实现各自的拦截器
* 如果拦截器中将对象置为空,则不返回数据。
*
* @param <T>
* exl列转换的目标对象
* @param in
* @param model
* @param className 必须继承ExcelModel基类
* @return
* @throws Exception
* @return List<T> 返回类型
*/
public <T> List<T> importExcel(HttpServletRequest request,
ExcelImpDto model, Class<T> className) throws Exception

}

业务逻辑规则处理-

SpringRuleEngine;

/**
* 规则引擎工厂,配置所有的流程和规则处理逻辑
*
* @ClassName: MultiRuleEngine
* @Description: TODO
* @author xianglin.mo
* @date 2014-11-26 上午09:15:33
* @version [1.0, 2014-11-26]
* @since version 1.0
*/
public class RuleEngineFactory;

 

进件系统流程配置和加载以及开发规范

 t_flow  流程定义表    ----如果有新的流程  在此定义

 t_node   流程节点处理逻辑表 ----如果开发了新的节点配置到这张表中—所有的节点必须继承AbstractLoopRule

 t_workflow_rule  流程实例化表 (包括流程的流转)----所有流程的规则在这里配置---执行的流程也在此表配置----所有节点id都那个各自的处理单元()

 t_node_role 流程节点的权限控制表

 t_noderule_param 流程实例化中每个节点需要用到的参数配置表

t_boss_workitem  流程执行的过程记录 --(主要节点的记录) 



开源的工具类使用

commons-codec     加解密常用

commons-beanutils   bean直接的转换 map 还有对象与对象直接的转换 反射

commons-collections   集合类扩展处理

json相关处理   

/**
* 官方已经明确过 ObjectMapper 是线程安全的,所以只要保证启动时,不并发即可 作为全局变量使用,可以提高性能
*
* @ClassName: JsonUtils
* @Description: TODO
* @author xianglin.mo
* @date 2014-11-26 下午02:31:54
* @version [1.0, 2014-11-26]
* @since version 1.0
*/
public class JsonUtils;

java-unrar  文件解压缩处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值