2018-06-22 17:34

@HalcyonDays 看控制台输出的 jfinal action report , 里头有一栏叫: Interceptor,删掉当前 action 不需要的拦截器就不会出现多余的数据了,这个绝对不是 bug

2018-06-22 16:34

必然会有并发问题, controller 中持有很多对象,例如 request、response 等等

正确的做法是:
me.setControllerFactory(new FastControllerFactory())
这样就可以避免每次都 new 出来新的 controller 了,而是每个线程在多次请求时只 new 出来一个

2018-06-22 16:32

@HalcyonDays 返回信息都一样,只不过你写了 # 就是 ajax 请求,从直观上看不到返回信息而已,而少写一个 # 就是普通请求,造成页面跳转信息显示出来了

在 chrome 中按一下 F12 打开开发者工具,能清清楚楚看到请求返回的数据是完全一样的

2018-06-22 16:16

@让我说点啥呢 就是这样原因了,注意看 jfinal 文档中有关 @ActionKey 注解的用法

2018-06-22 16:14

这里再补充一下,虽然少写一个 # 还是可以提交表单,那是因为这个表单本身就具有可以提交的功能,写上了 # 以后,该表单的提交行为会被你的 ajaxForm 这个方法接管

字符 # 在此仅仅是 jquery id 选择器的要求,你还可以使用其它选择器,详情可以了解一下 jquery 的多种选择器,用得最多的是类选择器

2018-06-22 16:12

少写一个 # ,那么 ajaxForm 这个方法的调用等于不存在,因为根本没绑定到相关的表单

注意百度搜索一下 jquery 选择器,尤其是 jquery id 选择器的用法

2018-06-22 16:08

@Don小浩 样式找不到,你得将 context path 设置正确,这个是 web 基础

下载首页的 jfinal demo ,参考里头的处理方法,所有资源都是以 “/” 打头的,例如 src、href 等资源路径

如果不设置为以 “/” 打头的话,资源路径随着你浏览器的当前路径会一直变动,这个是 Java web 规范决定的,不是 jfinal 可控制的

2018-06-22 14:16

@让我说点啥呢 仔细看控制台输出的 jfinal action report,里面会告诉你当前访问的 url、method、controller 等信息,很容易就能分析得出结论

StudentController 这个没有被映射到 “/”,或许是你看错了,将 StudentUserController 错看成了 :StudentController

2018-06-22 14:13

eclipse 已经很明确提示了,让 refreshing this project and build .....

2018-06-22 12:00

@lnrelax jfinal 是后端框架,只能管到后端,前端的事情确实无法干预

2018-06-22 11:59

仔细看控制台输出的 jfinal action report,其中的 urlPara 部分就是你输入的任意字符,仅仅当成是参数而已

多看一下 jfinal 路由规则表,只有四个规则,极其简单:
http://www.jfinal.com/doc/2-3

2018-06-22 10:30

jfinal 文档中有说明,此外这里有很多资源:
http://www.jfinal.com/share/531
http://www.jfinal.com/share/457
http://www.jfinal.com/share/441

2018-06-22 10:29

扩展一下 com.jfinal.log 包下的 Log 以及 ILogFactory ,扩展出来一个自己的 MyLog4j2LogFactory

参考里面的 log4j 以及 jdklog 的两个实现,最后再配置一下:
me.setLogFactory(new MyLog4j2LogFactory());

2018-06-22 10:26

纯前端问题,你的 ajax 部分的 data 应该弄成 json 格式:
data : {
k1:v1,
k2:v2
}

2018-06-22 10:25

先调用一次 getFile() 然后可以用 getPara(...) 获取参数值

这个在 jfinal 文档中有过说明