【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

一、特殊名词介绍

二、背景、场景介绍

帆软后台参数的获取是通过WebUtils这个工具类进行获取的,在读取参数时就允许通过RequestParameterHandler对参数进行解析、转换、增删、权限过滤等控制。大多数时候用于配合报表参数使用。

三、接口介绍

RequestParameterHandler.java
/*
 * Copyright (c) 2001-2014,FineReport Inc, All Rights Reserved.
 */

package com.fr.stable.fun;

import com.fr.stable.fun.mark.Immutable;

import javax.servlet.http.HttpServletRequest;

/**
 * @author : richie
 * @since : 8.0
 * 参数获取接口,可以重载此接口对参数获取来源做自定义以及过滤等操作
 */
public interface RequestParameterHandler extends Immutable {

    String XML_TAG = "RequestParameterHandler";

    int CURRENT_LEVEL = 1;

    /**
     * 从HTTP请求中直接获取参数
     *
     * @param req  HTTP请求
     * @param name 参数名
     * @return 参数值
     */
    Object getParameterFromRequest(HttpServletRequest req, String name);

    /**
     * 从HTTP请求中直接获取参数
     *
     * @param req  HTTP请求
     * @param name 参数名
     * @return 参数值
     */
    Object getParameterFromRequestInputStream(HttpServletRequest req, String name);

    /**
     * 从HTTP请求的属性中获取参数
     *
     * @param req  HTTP请求
     * @param name 参数名
     * @return 参数值
     */
    Object getParameterFromAttribute(HttpServletRequest req, String name);

    /**
     * 从内置的JSON格式的参数中获取参数
     *
     * @param req  HTTP请求
     * @param name 参数名
     * @return 参数值
     */
    Object getParameterFromJSONParameters(HttpServletRequest req, String name);

    /**
     * 从HTTP会话中获取参数
     *
     * @param req  HTTP请求
     * @param name 参数名
     * @return 参数值
     */
    Object getParameterFromSession(HttpServletRequest req, String name);

    /**
     * 从会话header中获取参数
     *
     * @param name 参数名
     * @param req http请求
     * @return 参数值
     */
    Object getParameterFromHeader(HttpServletRequest req, String name);

}


四、支持版本

产品线

版本

支持情况

备注

FR8.0支持
FR9.0支持
FR10.0支持
BI3.6支持
BI4.0支持
BI5.1支持
BI5.1.2支持
BI5.1.3支持

五、插件注册

plugin.xml
<extra-core>
        <RequestParameterHandler class="your class name"/>
</extra-core>


六、原理说明

WebUtils工具类是帆软产品中用于读取请求信息的标准工具类,其中包含了参数的获取。WebUtils经由NetworkHelper读取插件中申明的RequestParameterHandler实例提取相应的参数信息,如果没有插件注册,则默认会使用DefaultRequestParameterHandler读取参数。

七、特殊限制说明

为了具备良好的兼容性,通常在开发时,开发者不需要继承AbstractRequestParameterHandler而应该选择继承DefaultRequestParameterHandler,按照适配器的方式开发,仅仅对需要实际做调整的参数信息处理方法进行重写即可。【点击看示例】

因为这个接口存在,也要求开发者在编写任何接口代码时,需要读取请求的相关信息,都通过WebUtils或finekit中的相关kit方法进行读取,已保证良好的兼容性。

八、常用链接

demo地址:demo-request-parameter-handler

com.fr.web.utils.WebUtils

九、开源案例

免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。


  • No labels