JFinal 绝对路径的疑问
@JFinal 你好,想跟你请教个问题:
jsp里面使用绝对路径一般这么写
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
这样子的话每个文件都需要写 不知道使用了jfinal以后 有没有这样的配置呢 可以不用每个都写 然后从页面可以取出这个呢 比方说页面这样写 <link href="${basePath}Themes/Styles/Style.css" rel="stylesheet" />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
freemark:
FreeMarkerRender.getConfiguration().setSharedVariable("ctx", JFinal.me().getContextPath());
普通页面直接:
JFinal.me().getServletConxxxxx.setAttrxxxx("ctx","");自己点出来
然而上面根本不是最佳解决办法,每次请求都要读取值,在传递,为什么我们不把他存入上下文呢?这个服务启动又不会变的东西
ContextPathHandler是一个办法,不过如果你用freemarker做view的话,可以在你的config类里覆盖一下afterJFinalStart方法,
把contextPath直接做为一个freemarker的全局变量,这样你的模板中不用写任何东西,直接就可以使用${ctx}变量了。
多个项目如果你需要同时启动,可以启动在不同的端口下,Context Path 全部都设置为 "/"
没必要 这么搞 有个 ContextPathHandler 加入到全局就OK
没必要 这么搞 有个 ContextPathHandler 加入到全局就OK
用jetty热开发不就得了
回复
开发是没问题啊 主要是考虑以后部署
没必要 这么搞 有个 ContextPathHandler 加入到全局就OK
引用来自“孤独的3”的答案
没必要 这么搞 有个 ContextPathHandler 加入到全局就OK
没必要 这么搞 有个 ContextPathHandler 加入到全局就OK