2021-02-04 18:38
http://HOST/index,能正确识别,这个是将 "index" 当成 urlPara 而已,你在控制台的输出中能看到:
urlPara: index
如果不希望有 urlPara,可以在 index 中通过下面两种方式之一即可:
1:使用 checkUrlPara(0) 限定不使用 urlPara
public void index() {
checkUrlPara(0);
...... 其它代码在此
}
2:使用拦截器
@Before(NoUrlPara.class)
public void index() {
...... 其它代码在此
}
两种方法任选其一
一般来说 urlPara 是默认开启的,没有限制,但脑海中要有这根弦存在。此外,多关注一下控制台输出的 jfinal action report, 各种参数都有输出
2021-02-04 18:04
1:service 默认的 proxy 依赖于 JDK 中的 tools.jar,如果你是 JRE 那么没有这个 tools.jar,需要添加配置改为使用 cglib:
me.setToCglibProxyFactory();
这里有详细说明:
https://jfinal.com/doc/4-8
2:controller 的 AOP 用的是最直接的递归调用,不依赖于任何第三方机制。在往期俱乐部视频中详细讲了这个设计
虽然 service 层与 controller 层的 AOP 用到了不同的实现方式,但对外开放的 API 以及一套使用方式是一样的,例如都是用的 @Before(...) 以及 Interceptor
2021-01-27 16:48
@一只敲代码的猫
客户端发 json 是很方便的, 有很多同学并不知道浏览器中通过 js 代码也能发 json 数据,其实很方便:
function ajaxPostJson(url, jsonString, callback) {
$.ajax({
url: url, data: jsonString,
contentType: 'application/json; charset=UTF-8', // 关键参数
type: 'POST', cache: false, dataType: 'json',
error: function(ret) {alert(ret.statusText);},
success: function(ret) {....}
});
}
注意关键参数是:
contentType: 'application/json; charset=UTF-8'
注意上面的例子依赖 jquery
2021-01-27 16:12
@一只敲代码的猫 服务端目前只有 getBean、getModel、getPara、getRawData、形参注入五个系列的接收方式
你可以通过扩展 ParaGetter 来实现 List《Model》功能,也可以通过 getRequest() 得到 Request 对象以后,扩展实现
当然,最好还是让对方发送 json 数据,然后:
String jsonString = getRawData();
Map map = FastJson.getJson().parse(jsonString, Map.class);
因为 jsonString 转化成 List《Xxx》 的各类 json 工具已经成熟多年
2021-01-27 15:03
@一只敲代码的猫 看对方传的格式是什么, 建议传 json 过来,然后你只需要在服务端 :
String jsonString = getRawData();
Map map = FastJson.getJson().parse(jsonString, Map.class);
2021-01-27 14:56
继承一下你需要用到的 Render,覆盖父类中的 render() 方法,放入自己的代码,然后用的时候这样:
render(new MyRender(....));
如果你希望在 render(String ...) 中用上 MyRender,可以继承 RenderFactory 覆盖 getRender(...) 来实现,最后要配置一下:
me.setRenderFactory(new MyRenderFactory());
你还可以在 BaseController extends Controller 中通覆盖或者新建 render 方法来用上你的 MyRender
2021-01-22 15:45
@jf大哥大 静态资源在 fatjar 下面没有问题,下载首页的 jfinal demo,里面有一个打成 fatjar 的说明文件