Liferay 常用基础类 —— com.liferay.util.BeanParamUtil

来源:互联网 发布:c语言质数 编辑:程序博客网 时间:2024/05/18 01:56
位置:com.liferay.util.BeanParamUtil

作用:
在从request 里获取指定属性的值之前,动态设置默认参数。

方法及其功能:通常服务端,从Web 获取参数,当不能从前台获取完整参数时发生异常。若要避免也常,可以在服务端转发请求前,为其动态设置默认参数。当未能从前台获取参数时,使用默认参数。

public static [DataType] get[DataType]( Object bean, ServletRequest req, String param )
{
        return get[DataType](bean, req, param, GetterUtil.DEFAULT_[DataType]);
 }

public static [DataType] get[DataType]( Object bean,
                                                                   ServletRequest req,
                                                                   String param,
                                                                   [DataType]
  defaultValue )
{
        [DataType]  beanValue = null;

// (1)判断传入的bean 对象是否为空,若不为空则判断传入的对象中是否包涵名为param 的属性。
//            若包涵则将名为param 的属性的值赋给beanValue。
        if (bean != null) {                                             
            try {                                                                
                beanValue =
                    ([DataType])PropertyUtils.getSimpleProperty(bean, param);
            }
            catch (Exception e) {
                _log.error(e);
            }
        }

//(2)判断是否从对象bean 中的获取名为param 的属性值。若未获取到则从request 中查找名为param
//          的属的值。若仍然不包含该值则用defaulValue 对其赋值。
        if (beanValue == null) {                               
            return ParamUtil.get(req, param, defaultValue);
        }

//(3)若从对象bean 中获取了值beanValue,则以beanValue 作为默认值,从request 中查找param 属性。
       else {
            return ParamUtil.get(req, param, beanValue.[DataType]Value());
        }
    }

注意:区别于ParamUtil 类,ParamUtil 的一系列get 方法也能够预设默认值,但是必须在知道具体属性的前提下,显式的为期望获取的属性设置默认值;而BeanParamUtil 可以动态的利用对象为其设置初始值,而不需要人为的分解对象各个属性再为其分配初始值。
原创粉丝点击