写了个无聊的小扩展, 有需要的可以自己下载源码, 我自己也在用。
gitee的地址: https://gitee.com/saiya-tianma/jfinal-request-helper
使用方式:
public void configInterceptor(Interceptors me) { me.add(new JFinalRequestHelper()); } 或者在实现的方法前面使用 @Before(JFinalRequestHelper.class)
解决问题:
该扩展有效的解决了,List<JavaBean> 这种类型的参数转换问题,以及当使用普通的Request时,无法转换成JsonRequest的问题。
当请求使用get请求,使用jFinal的Action中无法直接通过参数获取时,当使用动态参数查询又想用HashMap\Kv接收参数时, 当使用非application/json请求数据,Action参数无法直接拿到数据时。 都可以使用该扩展插件。
当想使用类似Spring的那种直接返回json数据时, 例如:
public Company findByIdx(String companyId) { Company company = repService.getCompanyService().findByIdx(companyId); return company; }
该当使用该扩展时, 可以直接在Controller方法中, 用return xxx 的形式返回数据。 例如:
// 返回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") }
直接下载源码, maven install 后,引入到自己的jFinal项目中即可使用。
当使用@Ignore 注解参数时, 该参数不会被插件赋值。
如果需要自定义视图的注解, 只需要在自定义注解上加上@View这个注解即可。
扩展JFinalRequestHandler接口,可以对请求后的数据的内容做二次修正处理。 自定义接口的实现类。 并在 JFinalRequestHelper 初始化加载时addRequestHandler方法中即可.
扩展JFinalRequestLogPrinter接口, 可以对原始请求的参数信息和处理后请求的参数信息打印出来。 自定义接口实现类。并在JFinalRequestHelper 初始化加载时setRequestLogPrinter方法中即可。