2017-03-13 16:50
configEngine 中通常只需要使用 me.addSharedFuntion("xxx.html") 就可以了,该方法只有一个功能,就是将 xxx.html 中所有使用 #define 指令定义的“模板函数”添加为共享的模板函数
所谓共享地的模板函数是指,你在任何模板中都可以直接调用这些模板函数,如果你不使用 me.addSharedFunction(...) 来配置,那么想要调用这些模板函数,必须先使用 #include("xxx.html") 将之引入到当前模板之中,才可以调用
从你的问答中看出你并未理解 template function,不要把问题想复杂了,只需要注意如下几点:
1:将 me.addSharedFunction(xxx.html) 理解为在具体的模板中使用 #include(xxx.html) 添加所有 #define 指令定义的函数
2:使用 #define 定义的模板函数,可以想象成为 java 语言中定义的方法,方法有名称,有参数,方法之间可以互相调用
jfinal 模板引擎最重要的功能就是模板函数的定义与调用。其它的事情建议不要多想,再想很可能就想多了
2017-03-13 15:36
@Oliver springcloud 比 dubbo 要复杂很多,而且 spring cloud 与spring 的很多其它模块都有依赖关系,选择 spring cloud 方案,意味着你同时要学习 spring 的其它一些知识,因此学习成本会高出很多
建议使用 dubbo + jfinal 方案,已经有很多成功案例了
2017-03-13 10:34
截图中的红色关闭按钮是强制关闭 java 虚拟机,而 jetty、tomcat 的关闭并非指直接关闭虚拟机,而是向 jetty、tomcat 关送一个关闭信号,让其自己去关闭虚拟机
因此,beforeJFinalStop() 这个方法,会在 jetty、tomcat 正常关闭流程之下被回调,例如 tomcat 下回调它用一下 shutdown.sh、shutdown.bat 这两个可执行文件
而对于 eclipse 下面的开发情况之下,在修改了文件并保存后,jfinal 会 reload 一次 webapp,此时也会执行 beforeJFinalStop() 回调,在此方法中设置一个断点便知
2017-03-12 11:44
@哈小吉 异常信息中只有 fastjson 与 avoscloud 相关的异常,注意一下这两个第三方包所使用的版本依赖是否正确
2017-03-10 22:12
首先要确定一种参数传递方式,如果是表单的 key=value 形式,直接使用 getModel以及 getPara 系列就可以获取
如果确定使用 json 传递方式,那么使用 HttpKit.readData(getRequest()) 得到 jsonString 以后,再通过 FastJson.getJson().parse(jsonString, Xxx.class) 转成 java 对象即可
最后,要搞清楚一件事,如果参数出现在了 jfinal action report 的 Parameter 部分,那么千万不要认为是 json 传递方式,而仍然是 key=value 方式,只不过 value 部分的值是 jsonString,处理办法是:
String jsonString = getPara("filterCondition[0][unitCode]");
FastJson.getJson().parse(jsonString, ...)
从上面看到你的回复中的 Parameter 域中的数据,可以得知肯定是表单传递形式,但是 value 值中的数据并不是 json 格式,是错误的格式
最后的最后, javascript 是无法使用 json 传递方式的,只能是用 http 客户端程序才可以去传 json,这里所指的传值方式是指将数据当成是 http body 中内容,切记,切不要搞混