使用JFinal时候遇到两个问题,很隐蔽,折腾了半天,拿出来分享,希望能让大家不再继续纠结。
现象:无法获取前端表单提交的请求参数,后台使用getPara("paramName")输出为null.
原因:网上查阅得知,此问题仅在Tomcat下出现,主要是因为如果actionKey和webroot下页面存储目录同名,
比如actionKey为login,恰好webroot下有login目录,tomcat 会将你的请求重定向到?(我也不知道定向到哪里了,应该是webroot下那个同名目录。)
解决方法:在配置Route的时候actionKey和webroot下目录名不要重名,例如
@Override
public void configRoute(Routes me) {
me.add("/token",TokenControler.class,"_token");
}
另外,在文件上传表单中如果存在其他请求参数,在后端处理时,要先处理file请求,再处理其他请求参数,
否则同样获取不到其他参数。
1 UploadFile uploadFile = getFile();
2 Striing otherParam = getPara("otherParamName");