针对Requet请求的数据做了个进一步处理

写了个无聊的小扩展, 有需要的可以自己下载源码, 我自己也在用。

gitee的地址: https://gitee.com/saiya-tianma/jfinal-request-helper

  1. 使用方式:

  2. public void configInterceptor(Interceptors me) {
        me.add(new JFinalRequestHelper());
    }
    
    或者在实现的方法前面使用
    
    @Before(JFinalRequestHelper.class)
  3. 解决问题:


  4. 该扩展有效的解决了,List<JavaBean> 这种类型的参数转换问题,以及当使用普通的Request时,无法转换成JsonRequest的问题。 

  5. 当请求使用get请求,使用jFinal的Action中无法直接通过参数获取时,当使用动态参数查询又想用HashMap\Kv接收参数时, 当使用非application/json请求数据,Action参数无法直接拿到数据时。 都可以使用该扩展插件。

  6. 当想使用类似Spring的那种直接返回json数据时, 例如:

  7. public Company findByIdx(String companyId) {
        Company company = repService.getCompanyService().findByIdx(companyId);
        return company;
    }
  8. 该当使用该扩展时, 可以直接在Controller方法中, 用return xxx 的形式返回数据。 例如:

  9. // 返回json数据格式
    public ReturnValue<?> findByIdx(String companyId) {
        Company company = repService.getCompanyService().findByIdx(companyId);
        return new ReturnValue<>(company);
    }
    
    或者
    
    // 下载文件
    public File download() {
        return new File(filePath);
    }
    
    或者
    
    // 使用render(view) 的方法打开页面时
    @View
    public String showInfo(String companyId) {
        return "/template/show_info.html";
    }
    
    或者
    public void showInfo(String companyId) {
        render("/template/show_info.html")
    }
    
    或者
    public void showInfo(Kv data) {
        render("/template/show_info.html")
    }
  10. 直接下载源码, maven install 后,引入到自己的jFinal项目中即可使用。

  11. 当使用@Ignore 注解参数时, 该参数不会被插件赋值。

  12. 如果需要自定义视图的注解, 只需要在自定义注解上加上@View这个注解即可。

  13. 扩展JFinalRequestHandler接口,可以对请求后的数据的内容做二次修正处理。 自定义接口的实现类。 并在 JFinalRequestHelper 初始化加载时addRequestHandler方法中即可.

  14. 扩展JFinalRequestLogPrinter接口, 可以对原始请求的参数信息和处理后请求的参数信息打印出来。 自定义接口实现类。并在JFinalRequestHelper 初始化加载时setRequestLogPrinter方法中即可。



评论区

热门分享

扫码入社