1-常用约束规则RuleSource的设置方法
 
例如:
addRules(new Rules(ProgramFeeItem.class){
protected void initRules() {
add("rateClass", all(new Constraint[] { required() }));  //required表示,不可为空
add("remark", rules.maxLength(250));     //maxLength约束最大长度250
addMoneyRule(this,"payingSumFee");    
        }
});

2-自定义约束规则方法:
创建AbstractPropertyContraint对象,并实现test和toString方法,test方法用户定义约束规则 ,toString方法用户设置异常信息
 
例如:
addRules(new Rules(ProgramFeeItem.class){
protected void initRules() {
addMoneyRule(this,"payingSumFee");    //addMoneyRule自定义约束规则
        }
});
protected void addMoneyRule(Rules rules,final String datePath){
rules.add(new AbstractPropertyConstraint(datePath) {
@Override
protected boolean test(  //规则检测方法
PropertyAccessStrategy domainObjectAccessStrategy) {
                                
                                 //通过策略获取payingSumFee的值
Money amount = (Money) domainObjectAccessStrategy.getPropertyValue(datePath);
                                //自定义规则Money的范围
return amount.gte(new Money(-9999999999.99D))&&amount.lte(new Money(9999999999.99D));
}
 
@Override
public String toString() {//用户设置异常返回码
return Application.services().getApplicationContext()
.getMessage("gte.-9999999999.99.and.lte.9999999999.99",
new Object[] {},
"gte.-9999999999.99.and.lte.9999999999.99",
Locale.getDefault());
}
});
}
 

3-两控件联动约束规则设置方法:
使用RequireAIfBTrue对象实现, 
public RequireAIfBTrue(String a, String b, Constraint aConstraint, Constraint bContraint,String msgKey) {
其中
 a 要求约束对应的属性
 b 要求约束的前提约束对应的属性
 aConstraint Constraint 要求约束
 bContraint Constraint 要求约束的前提约束
 msgKey String 国际化信息
 
例如:
addRules("receipt",new Rules(ProgramWorkOrder.class) {
protected void initRules() {
add(new RequireAIfBTrue("failureReason", "taskResult", required(),
new Constraint() {    //指定约束规则
public boolean test(Object argument) {     //约束规则设置
TaskResult result = (TaskResult) argument;
if (result != null && result.ordinal() == TaskResult.UNSUCCESS.ordinal()) {
return true;
}
return false;
}
}, "required"));     //required国际化信息
}
});
 

【Java】RuleSource约束常用方法整理的更多相关文章

  1. Java笔试面试题整理第八波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  2. Java笔试面试题整理第一波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  3. Java 动态写轮眼 SharinganJPanel (整理)

      /** * Java 动态写轮眼 SharingganJPanel (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * 设计声明: * 1.虽然岸本是日本人,而我个人作为其模仿者,依 ...

  4. Java 动态眨眼 EyesJPanel (整理)

    /** * Java 动态眨眼 EyesJPanel (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * 注意事项: * 1.本程序为java程序,同时感谢您花费宝贵的时间来阅读本文档: ...

  5. Java 动态太极图 DynamicTaiChi (整理)

    package demo; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import jav ...

  6. Java Cardioid 心脏形曲线 (整理)

    package demo; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import jav ...

  7. Python 部分系统类的常用方法整理

    下面是常用的几个系统类的常用方法整理: list: 列表[1, 2,...] set: 集合,无重复元素{1, 2,...} str: 字符串 dict: 字典{a:'a', b:'b',...} T ...

  8. Java笔试面试题整理第六波(修正版)

    转载至:http://blog.csdn.net/shakespeare001/article/details/51330745 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  9. Java笔试面试题整理第五波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51321498 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

随机推荐

  1. .NET Framework 4 与 .NET Framework 4 Client Profile

    今天碰到的一个问题和Client Profile相关的.问题是这样的:一个WPF工程,需要引用另外几个.NET的assembly, 在WPF工程中添加了对这几个assembly的引用,并在程序中可以添 ...

  2. 不定义JQuery插件,不要说会JQuery 分类: JavaScript 2014-11-24 14:18 155人阅读 评论(0) 收藏

    一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...

  3. android 入门-git之上传本地代码到github

    github部分: 1.首先去github网站 上注册一个用户 2.说明 https://guides.github.com/activities/hello-world/ 2.点击 New repo ...

  4. phpcms-v9系统搭建wap网站及单页面

    如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台——模块——手机门户域名里面填写“http://wap.do ...

  5. Centos7-mqtt消息中间件mosquitto的安装和配置

    在以前发布的博客"菜鸟是如何打造智能家居系统的"文章最后我提到了使用MQTT协议作为云平台和设备之间的通信协议以达到消息传递的实时性,手机的消息推送也大多基于这种平台,首先搬来一段 ...

  6. LoadRunner 脚本学习 -- 使用动态链接库

    DLL = Dynamic Link Library DLL最重要的一个特点就扩展应用程序的特性. 再强大的工具也有不是万能的,通过调用动态库的方法极大地增强loadrunner的功能.当你在用loa ...

  7. 【POI xls Java map】使用POI处理xls 抽取出异常信息 --java1.8Group by ---map迭代 -- 设置单元格高度

    代码处理逻辑: 代码流程: 1.首先需要创建一个实体 用来存储 相关信息 package com.sxd.test.unusualName; public class NameEntity { pri ...

  8. host_network_interfaces_slow_mode_thresholds

    CDH报集群异常: host_network_interfaces_slow_mode_thresholds 警告置为从不-- 主要是我没有查到发生这种情况的原因是什么--

  9. torch7安装

    按照官网进行安装即可;(http://torch.ch/docs/getting-started.html#_) # in a terminal, run the commands WITHOUT s ...

  10. 用js完成毫秒格式数据的日期格式化任务

    后台传过来的数据  creationTime  在后台是Date类型的 毫秒转换成  05-24  月 日格式的 //获得月日得到日期oTime function getMoth(str){ var  ...