@JFinal 你好,想跟你请教个问题:
1、我配置了全局登录校验拦截器,如若没有登录,跳转至登录页面。拦截器中如果使用redirect("/login.html"),freemark代码不会解析,而是直接输出了HTML内容。
2、如果在地址栏直接访问静态资源,如某个页面,拦截器也不会起作用。
该如何解决?谢谢
使用 redirect("/login.html") 后,浏览器会发起一个请求,而该请求是一个静态资源请求,而 jfinal 只会处理动态请求,静态请求都是由 jetty、tomcat 这类容器来处理的。
所以解决方法极度简单,没有登录时重定向到一个动态请求即可: redirect("/login"); 当然前提是你要事先建好一个 action,路由为 "/login"
######貌似redirect("/login.html") 是不允许的吧。是不是手误render(...)?
一般情况下,除了js,css,图片等静态资源可以访问,其它html,jsp等是不能直接访问的,要经过render渲染。
######谢谢!已经解决了!看了官方文档,自定义Handler来处理静态资源请求URL。######貌似redirect("/login.html") 是不允许的吧。是不是手误render(...)?
一般情况下,除了js,css,图片等静态资源可以访问,其它html,jsp等是不能直接访问的,要经过render渲染。
使用 redirect("/login.html") 后,浏览器会发起一个请求,而该请求是一个静态资源请求,而 jfinal 只会处理动态请求,静态请求都是由 jetty、tomcat 这类容器来处理的。
所以解决方法极度简单,没有登录时重定向到一个动态请求即可: redirect("/login"); 当然前提是你要事先建好一个 action,路由为 "/login"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。