2022-11-25 19:07

jboot.properties的jboot.app.mode = dev,改这个设置切换。生产环境可以加命令行参数来强制切换,如--undertow.port=8080 --jboot.datasource.url=xxUrl

2022-10-21 17:39

客户端数据用post+MutilPartForm提交,然后后台getFiles的第二个参数设置接收数据字节长度上限

2022-09-30 11:57

@杜福忠 牛b,用json自定义输出ui非常灵活

前端同样是layui,这里贴一下我们项目目前的玩法

​### #set(modelTag = "xxx")### 默认由拦截器自动处理|页面全局参数|modelTag(数据库类名,小写;跟json请求提交有关)|
#set(pageTag = UUID19.uuid())### 默认由拦截器自动处理|页面全局参数|pageTag(页面标记,为空时自动用modelTag的值;跟页面dom命名有关,务必避免跟其它页面重复;)|

#include("/commons/template/layui_admin_listview.html"
, pageTitle="考勤详情查询"
, tableCols="[[
{field: 'studentCode', width: 145, title: '学工号'}
,{field: 'name', width: 120, title: '姓名', templet: '#LAY-listview-tpl-stuView-#(pageTag)'}
,{field: 'sexName', width: 58, title: '性别'}
,{field: 'studentTypeName', width: 86, title: '学生类型'}
,{field: 'orgPath', width: 200, title: '管理单位路径', style: 'direction:rtl;'}
,{field: 'dormPath', width: 250, title: '楼栋宿舍路径', style: 'direction:rtl;'}
,{field: 'stuAttendanceStatusName', title: '考勤状态'}
,{field: 'statisticsDateStr', title: '考勤日期'}
,{field: 'entryTimeStr', title: '最近进出时间'}
,{field: 'entryModeName', title: '进出方式'}
]]"
, listUrl="list"
, pageTagTransmit=true
, withFileForm=true
)

#define beforeMain()### 位置在页面主要内容前(可定义js/css等等)
###---------------------------------------------------------------------------------beforeMain--start↓



###---------------------------------------------------------------------------------beforeMain--end--↑
#end

#define searchBox()### 搜索栏表单内容
###---------------------------------------------------------------------------------searchBox--start↓

#@laySearchBoxItemStart("姓名" ,"layui-input-inline")

#@laySearchBoxItemEnd()

#@laySearchBoxItemStart("学工号" ,"layui-input-inline")

#@laySearchBoxItemEnd()

#@laySearchBoxItemStartWS("楼栋" ,"layui-input-inline", "width:28px;", "width:400px;")
输入可搜索 #for(house : DataHelper.getRoleHouses(request)) #(house.name) #end
#@laySearchBoxItemEnd()

#@laySearchBoxItemStartWS("管理单位" ,"layui-input-inline" ,"width:28px;" ,"width:420px;")
输入可搜索 #for(shuyuan : DataHelper.getRoleShuyuans(request)) #(shuyuan.name) #end
#@laySearchBoxItemEnd()









按条件导出Excel


###---------------------------------------------------------------------------------searchBox--end--↑
#end
...


然后还有一个form的基本模板,用法跟listview差不多。

2022-09-26 11:43

长期都是这样的,突然改成支持获取父类的注解可能引发更大的问题

2022-09-14 18:04

layui用户路过。看了下不错,先马克

2022-08-23 16:52

关键词,hutool 脱敏

2022-08-15 11:23

之前做一个简易的推送用过Server-sent Events (SSE)。话说推送业务该怎么管理客户端对话,就是怎么精准管理哪个推送session对应到具体用户(持久化或者缓存起来),用来后续业务处理?

2022-07-12 14:35

BaseController重写getRender()

@Override
@NotAction
public Render getRender() {
Render render = super.getRender();
if (render instanceof com.jfinal.render.JsonRender) {
} else if (isRenderJson()) {
return RenderManager.me().getRenderFactory().getJsonRender(getAdminResult());
}
return render;
}

isRenderJson()判断可以是客户端带上指定的参数,或者ajax的dataType之类的

2022-06-21 15:00

@杜福忠 噢,确实,感谢提醒

2022-06-21 13:41

@杜福忠 杜佬,上个码来看看ヽ( ̄▽ ̄)ノ

2022-06-21 10:56

kill了占用80端口的进程

2022-06-21 10:54

@JFinal 詹总,刚好想到之前项目有个情况,因为TL多数时候用法是try{serTL();拦截器invoke();}finally{removerTL();}有一次就是前端render的时候用到TL的东西,但是拦截器invoke()的后面其实是发生在response写之前的,这时候TL清空,render已经拿不到想要的东西,当然这个场景可以用别的处理方法,小问题。那么詹总有没有考虑过after拦截器,或者现有的拦截器加个afterResponse()回调呢,应该还是有应用场景的。

2022-06-20 23:16

https://github.com/alibaba/transmittable-thread-local/issues/128

2022-06-20 23:15

@JFinal 使用场景主要就是线程内的“全局变量”。我是放在一个工具类使用的,private static final FastThreadLocal> threadMap = new FastThreadLocal>();然后有还有setThreadMap(String key, Object value);removeThreadMap();removeThreadMap(String key);get方法;