2020-06-24 15:54

@JFinal 说到这个,突然想起假如要用@Para 似乎有点麻烦,每次都有输入name=还后有定义默认参数又得输入defaultValue这个defaultValue 呢又点有长。

2020-06-09 19:29

除上上面描述的,补充一两点:
1、源码编译jdk版本必须是1.8;
2、删除 maven.javadoc.plugin插件下的execution标签:
删除前如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<!-- 解决 java8 发布到 maven 异常 -->
<additionalparam>-Xdoclint:none</additionalparam>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>

删除后如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<!-- 解决 java8 发布到 maven 异常 -->
<additionalparam>-Xdoclint:none</additionalparam>
<encoding>UTF-8</encoding>
</configuration>
</plugin>

否则还是会安装失败的。

2020-06-01 17:24

研发项目环境主要是ajax+pjax做异步请求,数据交互为格式:json,这个优化提升很的确非常明显,4.9一放出直接改版本号上去,都能感觉到速度这提速效果。

2020-05-21 16:44

语法不对,请仔细阅读文档:https://jfinal.com/doc/6-4

2020-05-21 16:43

@Clear()注解作用主要是用来清除方法上拦截器,默认不带参数默认清除所有方法上的拦截器,只想清理某一个拦截器写法:@Clear({xxx.class})即可。

2020-05-19 12:08

断点追踪下 Trans拦截器看下详细堆栈信息。

2020-05-19 12:04

查直日志,然后排查下代码看是否存在资源未释放,另外可以增加参数,-XX:-UseGCOverheadLimit,关闭这个特性,同时增加堆内存大小-Xmx1024m 试下。

2020-05-19 11:59

参考这个弄下,现货:http://www.jfinal.com/share/1024

2020-05-19 11:56

@chcode 看业务看需求任意组合,他这个反馈属于安全范畴,做全局跨域拦截器,过虑下即可。

2020-05-18 18:23

框架默认只提供GET|POST方法拦截实现,使用方式如下:
@Before({GET.class,POST.class})//表明finalAll方法只允许GET|POST请求
public void finalAll(){}

2020-05-09 10:54

@风满楼 嗯嗯!用getAttr()

2020-05-07 22:06

@你妹啊 一样的思路稍做调整,如直接把renderJson(ret)改为renderToString("HTML片段")即可,
1、后台代码:
public void index() {
var async = get("async");
var tab = getInt("tab", -1);
var stime = get("stime");
var etime = get("etime");

set("tab", tab).set("stime",stime).set("etime", etime);

var logPage = logAdminService.paginate(getPageNumber(), getPageSize(), tab, stime, etime);
var ret = Okv.by("code", 0).set("msg", "").set("count", logPage.getTotalRow()).set("data", logPage.getList());
rendertoString("_item.html", ret);
},

2、编写_html.html片段代码,例如:






#for(list: data) .....#end


3、前台调用返回html片段
$.ajax({
type: "POST",
url: "/admin/log",
data: {
tab: $("#tab").val(),
stime: $("#stime").val(),
etime: $("#etime").val()
},
dataType: "html"
success: function(ret){
$("#content").val(ret);
}
});

2020-05-07 19:34

直接用get("aa")、get(“bb”)即可拿。

2020-05-07 19:31

不知跟你的应用场景对不对个,其实这个问题很简单换个思路即可,比如场景:一个列表请求页面,页面渲染显示、拉取数据分两部走,可以在不需要类似sapringmvvc返回一个Modelandview即可实现异步请求,
1、后台代码:
public void index() {
var async = get("async");
var tab = getInt("tab", -1);
var stime = get("stime");
var etime = get("etime");

if (sl.isEmpty(async)) {
render("index.html");
return;
}

set("tab", tab).set("stime",stime).set("etime", etime);

var logPage = logAdminService.paginate(getPageNumber(), getPageSize(), tab, stime, etime);
var ret = Okv.by("code", 0).set("msg", "").set("count", logPage.getTotalRow()).set("data", logPage.getList());
renderJson(ret);
}
2、前台代码:
$.ajax({
type: "POST",
url: "/admin/log",
data: {
tab: $("#tab").val(),
async: 1,
stime: $("#stime").val(),
etime: $("#etime").val()
},
success: function(ret){
}
});
2、在请求中加一个异步参数async。
3、在第一次请求传入参数async为空表示只渲染界面显示,当async不这空则表示拉取数据,这个即可实现渲染数据、拉取数据两步头;最后拉取数据那部分页面代码是通过ajax步请求。

2020-04-11 11:48

这个问题不大很非见,就如波总上面说解答,但是你应该关系那些扫码器,探测你的系统;把安全做好,sql注入,关注业务尽量不要使用sql拼接,
1、在框架层JFinal底层基于 PreparedStatement天然支持防sql注入,在数据连接层Druid 自带有防注入功能开启即可,另外应用层如果用nginx做代理的话也可以过虑掉sql注入;
2、再次关注跨站点请求校验,xss过虑,评论提交、附件上传过虑好,系统权限控制好,在业务层再防一层;
3、最后操作系统再做层安全,只要不是ddos可以说你的安全性非常非常的高,即使存在ddos但这个也问题也大,投入更多机子然后用nginx或F5做负载分流多台机子一起扛住这波流量即可。以上是做系统防护思路,希望以你了解系统安全帮助。