@JFinal 你好,想跟你请教个问题:
1、我配置了全局登录校验拦截器,如若没有登录,跳转至登录页面。拦截器中如果使用redirect("/login.html"),freemark代码不会解析,而是直接输出了HTML内容。
2、如果在地址栏直接访问静态资源,如某个页面,拦截器也不会起作用。
该如何解决?谢谢
me.add(new UrlSkipHandler("*.html")); 参数是一个正则表达式,只要这个正则能匹配到的url全部会被 skip 掉
回复@JFinal : new UrlSkipHandler(".*html", false) 不要盲目相信楼上的
回复@Jieven : 两年前的贴子了,正则手误写错,汉
貌似redirect("/login.html") 是不允许的吧。是不是手误render(...)?
一般情况下,除了js,css,图片等静态资源可以访问,其它html,jsp等是不能直接访问的,要经过render渲染。
谢谢!已经解决了!看了官方文档,自定义Handler来处理静态资源请求URL。
使用 redirect("/login.html") 后,浏览器会发起一个请求,而该请求是一个静态资源请求,而 jfinal 只会处理动态请求,静态请求都是由 jetty、tomcat 这类容器来处理的。
所以解决方法极度简单,没有登录时重定向到一个动态请求即可: redirect("/login"); 当然前提是你要事先建好一个 action,路由为 "/login"
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(7)
me.add(new UrlSkipHandler("*.html")); 参数是一个正则表达式,只要这个正则能匹配到的url全部会被 skip 掉
回复
@JFinal : new UrlSkipHandler(".*html", false) 不要盲目相信楼上的
回复
@Jieven : 两年前的贴子了,正则手误写错,汉
引用来自“车开源”的评论
貌似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"