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

本文介绍com.liferay.util包下的BeanParamUtil类,该类提供了一系列方法用于从前端请求中获取参数,并能在参数缺失时动态设置默认值。通过BeanParamUtil,开发者可以避免因参数不全导致的异常,并简化代码逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

位置: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 可以动态的利用对象为其设置初始值,而不需要人为的分解对象各个属性再为其分配初始值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值