2017-06-05 18:02
@qianqian123 检查两个地方,一个 request 这个对象是不是早已是 null,还有一个是 request.getSession(true) 这个获取到的是不是 null
检查的方法是在 controller 中使用:
HttpServletRequest request = getRequest();
HttpServletSession session = request.getSession(true);
要确保这两个对象不能为 null,确保的方式不是 jfinal 的范畴,要去检查 tomcat 这些东东,或许是你的项目改了 jfinal 源代码,造成这些值为 null
2017-06-05 16:30
setSessionAttr(...) 的源代码如下:
public Controller setSessionAttr(String key, Object value) {
request.getSession(true).setAttribute(key, value);
return this;
}
可知道 session 的实例化是自动化的,你的代码出现了 Null Pointer Exception,应该是 request.getSession(true) 这一行代码出的问题,这一行代码 jfinal 仅仅是转调了一下底层的 HttpServletRequest,这个在历史是从未出现过问题
目前为止我也不知道原因
2017-06-05 11:11
@怪物 必须要看控制台的错误才好解决问题,如果没有,添加一下 log4j.jar 与 log4.properties 文件
2017-06-03 18:03
@Han_JiaLin 这个问题肯定与 jfinal 无关,jfinal 上传文件的功能用了六年多了,从没出现过这个问题,极其可靠
2017-06-03 14:34
@Han_JiaLin 你确定是 post 上传的? 在浏览器中按一下 F12 键,打开浏览器的开发者工具,用眼睛去看事实,不要去猜
2017-06-03 14:28
@Han_JiaLin 默认允许上传 10MB 的文件,可以通过 me.setMaxPostSize(...) 来设置这个值
此外,你还要注意 tomcat 与 jetty 这类容器是不是配置了上传文件大小的限制
2017-06-03 13:30
@Han_JiaLin 上传文件的请求被重定向是 tomcat 的问题,看这个贴子来解决一下:http://www.oschina.net/question/941098_93842