2023-07-31 22:34

猜不到,是不是代码有 try 吃住异常了? 并且缺依赖jar?

2023-07-30 10:04

要获取 Java 类的注解,可以使用 Java 的反射机制和注解 API。
如:注解类 a= 目标类.class.getAnnotation(注解类.class);

网上搜索资料时,直接搜索Java XXX 就可以了,不用加JFinal,除非是要扩展JF的功能。比如下面两个扩展:
https://jfinal.com/share/2594
https://jfinal.com/share/2354

2023-07-25 09:52

因为分页有割掉order by,这种复杂的order by需要跳过一下,我之前有遇到过类似的需求,有加一个扩展处理进行跳过切割,
分享内容在: https://jfinal.com/share/2533
或者使用手册里面介绍的 https://jfinal.com/doc/5-6
第 "5、常见问题解决" 内容有介绍如何处理

2023-07-18 10:07

@北流家园网 普通JavaBean,没啥内容,就是固定了属性字段,因为Kv等类的属性是set进去的动态的,而返回结构第一级是固定格式,每次写比较麻烦。

2023-07-06 18:09

Enjoy 模板引擎专为 java 开发者打造,所以坚持两个核心设计理念:一是在模板中可以直接与 java 代码通畅地交互,二是尽可能沿用 java 语法规则,将学习成本降到极致。
因此,立即掌握 90% 的用法,只需要记住一句话:Enjoy 模板引擎表达式与 Java 是直接打通的。

这不是JF特色功能么? 只要不开放给前端无权限的自由填写就没问题了。

而且JF 5.0.2版本后,静态方法调用也改了:
Enjoy 模板引擎的静态方法调用与静态属性访问表达式默认值改为了 "不开启",如果用到这两类表达式,需要通过如下配置开启:
// 以下配置支持静态方法调用表达式:com.jfinal.kit.StrKit::isBlank('abc')
engine.setStaticMethodExpression(true);
// 以下配置支持静态属性访问表达式:com.jfinal.core.Constant::JFINAL_VERSION
engine.setStaticFieldExpression(true);

2023-06-28 14:28

@ipan 集群项目推荐直接使用j2cache这个开源中国红薯大佬的工具。该分享是刚工作时对老项目的微改造,并不通用

2023-06-19 11:38

源码中注释:
Okv 与 Kv 的唯一区别在于 Okv 继承自 LinkedHashMap,而 Kv 继承自 HashMap。所以对 Okv 中的数据进行迭代输出的次序与数据插入的先后次序一致。

场景就是对参数有顺序要求的,比如接口防篡改参数校验等

2023-06-04 23:01

@JFinal 还得是老大搭的架子美啊,想要个啥功能,JF里面淘一下改薄改薄比市面的还好用

2023-05-24 13:07

个人认为不如直接使用MixedJsonFactory 性能更高,配置一下就可以了:
public void configConstant(Constants me) {
me.setJsonFactory(new MixedJsonFactory());
}
官方提供了 MixedJson、MixedJsonFactory 实现,这个实现让转 json string 时使用 JFinalJson,反向转成对象则使用 FastJson。
https://jfinal.com/doc/12-2

必须Fast转字符串的话就继承FastJsonFactory和FastJson改一下返回值:
return JSON.toJSONString(object) 改为 :
return JSON.toJSONString(r, SerializerFeature.WriteMapNullValue);
就可以了

2023-05-17 17:46

@zzutligang 本来也不是BUG,原因是代理软件给JF的数据就是HTTP协议,那JF自然返回给它HTTP协议的连接。JF4.9.1是加入了判断header参数X-Forwarded-Proto的,这个得代理软件设置该参数,比如NGINX可以配置proxy_set_header 。花生壳应该是不支持配置该参数。如果代理软件配置不了参数,那就把参数配置到JF项目里了,我们以前的老项目都是写配置文件里面的

2023-05-17 14:55

可以再装一个NGINX,配置加上:
#JFinal nginx 代理 https 的场景,需要使用如下配置:
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
这样就变成了 花生壳》NGINX 》JF

或者修改项目,重定向url 前面加一个配置项:https://+ 域名 + url

或重写RedirectRender使其读配置文件判断是否加上面内容

2023-05-12 18:15

不划算,JF的Model并不是传统的JavaBean,手动编写getXXX、setXXX方法极不方便。Model没有成员变量属性,所以也用不上IDEA的属性生成get/set,而且就算反射拿到setXXX方法获取其参数类型,比如String类型,那也不知道应该设置多长varchar还是text还是其他。所以工具作用不大。
目前了解到的一个场景就是,老项目Model有生成setXXX方法,但是丢失数据库结构了,需要找回数据库表的时候,可以利用反射Model生成建表SQL,约定Java类型对应的数据库字段类型,建表后再微调数据库。。。但是感觉不如重新做一个各个框架都可以用上最新的了

2023-04-26 16:15

@陈伟 看需求combobox的选定值 ,是否需要后台存储,还是前端零时使用。
需要后端存储交互的话,就是把选定值提交了,其他地方用的时候Java取。
如果只是前端当前页临时使用的话,那JS是最便捷的,不妨先从“喜欢”前端开始:)很有意思的