如何使用PropertySet特性?

187 篇文章 2 订阅
开发环境:JDeveloper 11.1.2.2.0 + Oracle XE Database 10gR2。

想要了解PropertySet特性,就必须先了解Custom Properties特性。
你可以为EO或VO的某个字段定义Custom Properties,然后再程序中访问该Custom Properties。
在《 ADF-BC中EO常用操作代码之三:增加EO(1) 》中,我们就为DepartmentId定义了一个Custom Properties:SequenceName。

这里我分别先后使用Custom Properties和PropertySet特性来实现数据大小写。

1. 使用Custom Properties实现数据大小写
(1)在JobTitle上设置一个Custom Properties:CASE。

(2)重写EOImpl的setJobTitle方法。
    /**
     * Sets value as the attribute value for JobTitle.
     * @param value value to set the JobTitle
     */
    public void setJobTitle(String value) {
        for (AttributeDef def : getEntityDef().getAttributeDefs()) {
            String caseProperty = (String)def.getProperty("CASE");
            if (caseProperty != null && !caseProperty.equals("")) {
                if (caseProperty.equals("Uppercase")) {
                    value = value.toUpperCase();
                } else if (caseProperty.equals("Lowercase")) {
                    value = value.toLowerCase();
                } else {
                    // Do nothing; unknown value
                }
            }
        }        
        setAttributeInternal(JOBTITLE, value);
    }

(3)运行AM。
修改JobTitle,设置为小写的值。

点击其它地方,发现JobTitle的值自动变为大写了。


2. 使用PropertySet实现数据大小写
假设如果需要为很多EO/VO的字段设置很多个Custom Properties,那么定义起来工作量将会非常大,非常乏味,而且容易出错。
为此,你可以把这些个Custom Properties组合在一起,定义为一个PropertySet。
这样你只需要为每个EO/VO的字段定义一次,效率提高的同时,出错的可能性也几乎为零。

(1)创建PropertySet

(2)在PropertySet定义中增加Custom Properties

(3)选择JobTitle字段,设置PropertySet属性,指向刚刚定义的PropertySet

(4)重写EOImpl的setJobTitle方法。
    /**
     * Sets value as the attribute value for JobTitle.
     * @param value value to set the JobTitle
     */
    public void setJobTitle(String value) {
        for (AttributeDef def : getEntityDef().getAttributeDefs()) {
            String lowerCaseProperty = (String)def.getProperty("LowerCase");
            if (lowerCaseProperty != null && lowerCaseProperty.equals("Y")) {
                value = value.toLowerCase();
            }
        }
        setAttributeInternal(JOBTITLE, value);
    }

(5)运行AM。
修改JobTitle,设置为大写的值。

点击其它地方,发现JobTitle的值自动变为小写了。

另外,运行时,你可以右键JobTitle,会显示出该字段都定义了有哪些Custom Properties


Project 下载: ADF_BC_CustomProperties.7z   ADF_BC_PropertySet.7z

参考文献:
1. http://hi.baidu.com/kill/blog/item/569bf6039281ba7c3912bb47.html
2. https://blogs.oracle.com/raghuyadav/entry/adf_custom_properties_and_prop
3. http://one-size-doesnt-fit-all.blogspot.jp/2008/09/jdev-11g-adf-bc-new-feature-property.html
4. http://www.avromroyfaderman.com/2008/07/the-power-of-properties/#more-80

5. http://one-size-doesnt-fit-all.blogspot.jp/2007/06/i-rest-my-case-converting-adf-bc-eovo.html

http://maping930883.blogspot.com/2010/04/adf060propertyset.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值