2021-03-02 14:12

Db.template("delByCus_id), idValue).update();

2021-03-02 11:49

@zzutligang 将代码分享出来啊,很多人需要 😀 😃 😄 😁 😆

2021-03-02 00:04

@zzutligang 我说反了,不带 -9 可能会出现异常

2021-03-01 14:27

@zzutligang 检查一下你的 jfinal.sh 中的 kill 命令是不是带上了 -9 这个参数

这个参数是强制退出 JVM,那么正在通信的 websocket 会有异常,这个应该是正常现象

2021-03-01 12:42

@developer4 反射获取 A 中的所有属性名,然后再生成为你需要的模板内容就可以

反向生成可能有点麻烦,得多写点代码,先实现正向生成吧

2021-03-01 12:26

可以做成指令,也可以做成 shared method,以下是shared method 的用法形式:
#( toJson( classAObject) )
#( parseJson(classAString) )

以下给出 toJson shared method 的简单实现:
public class SharedLib {
public String toJson( Object obj ) {
return JsonKit.toJson(obj);
}
}

最后,要配置一下:
configEngine(Engine me) {
me.addSharedMethod(SharedLib.class);
}

2021-02-28 16:37

@dqpb 注意看文档,节省大量时间,都是最基本的用法

2021-02-28 14:42

@dqpb @Path 注解一共有两个参数,其中第二个参数是 viewPath,例如
@Path("/customer", "/")

当你省略第二个参数的时候,默认值将使用第一个参数,所以
@Path("/customer")
将等价于:
@Path("/customer", "/customer")

所以,你的 render 中的路径会多出来一个 customer

@Path 注解是从原先的 configRoute(Routes me) 中的
me.add("/customer", controllerClass, "/customer")
演化过来的,所以配置规则也沿用了以前

这个在文档中有详细的说明:
https://jfinal.com/doc/2-3

文档中有如下一句话:
@Path 注解可以配置 controllerPath 与 viewPath 两个参数,当 viewPath 省略时默认与第一个参数值相同。上例中的两个 Controller,第一个只配置了 controllerPath,第二个还配置了 viewPath。

2021-02-28 13:46

@dqpb 稍微看看文档,内容很少

2021-02-28 12:25

@dqpb 主要是添加 log4j.properties 文件,下载首页右侧的 jfinal demo, 将里头的 log4j.properties 文件放到自己项目的合适位置即可

注意要添加 log4j 依赖

2021-02-28 12:16

日志一定要开启,然后异常才会输出,进而才能知道原因,一般是路径错误

2021-02-27 14:30

@704442497 enjoy 的功能极其完备,你要的功能一般都在前方等着

2021-02-27 01:03

有好多方法呢,最简单的方法是用 getTemplateByString(...),例如:
Template t = engine.getTemplateByString( string 在此);
String str = t.renderToString(...);
还可以直接输出到文件: t.render(..., '输出文件名.txt');

以上是通过 getTemplateByString,还可以通过 getTemplate(ISource),
这个 ISource 可以指向任意地方,例如可以是从数据库:
public class DbSource implements ISource {
boolean isModified() {return false};
String getCacheKey() {return null);}
String getEncoding() {return "utf-8"}

StringBuilder getContent() {
// 从数据库查询得到模板内容
String str = Db.queryString("select info_template from ... where ...", ...);
return new StringBuilder(str);
}
}
然后,通过 engine.getTemplate(new DbSource()).render(...) 就实现了从数据库获取模板的功能


一般情况建议通过第一种方式:
String str = Db.queryString("select info_template from ... where ...", ...);
Template t = engine.getTemplateByString( str );
String str = t.renderToString(...);

2021-02-25 14:35

weixin pay 目前只做了二维码扫码支付

其中的统一下单,以及交互中使用的参数与小程序支付几乎都是一样的,所以,你可以稍微看一看微信平台的小程序支付的文档,然后稍加改变就可以实现功能了

2021-02-25 12:34

短短几行代码实现了指令动态化,赞