关于Jfinal中ContextPathHandler的作用

关于DEMO怎么? 嗯 置于这个问题么,你有三种方式,第一,你来OSC上找,第二,搜索Jfinal群,不过这两个方式指向同一个位置,JFinal的官方站点。上面有各种版本的源码,因为开源,所以你能够改成你任何想要的样子,这个我就不多说了,免得被误认为打广告!!

关于DEMO的样式丢失问题! 这个问题基本上就是你的资源文件路径加载不正确的原因,因为在这个DEMO里面,他的资源文件路径是没有使用绝对路径的(如果我没有记错的话),也就相当于你在引用资源文件的时候路径写错了,最常见的问题就是项目的名称丢失造成的,举个例子啊: 假如你的项目就叫DEMO,WEB容器是TOMCAT,在正常情况下,你如果要访问这个项目的话,你是不是要按照这样的方式去做: http://localhost:8080/demo 去访问你的项目???(注意:demo是你的项目名称) 那么现在事情的发展过程是这样的,在这个DEMO里面他所有资源文件都是相对路径,也就是说你访问的地址已经指向了某个页面,但是由于相对路径的存在,他资源文件可能指向的文件不一定是你的项目里的。

具体体现就是“/demo/index.html”(这个页面能够正常访问,http://localhost:8080/demo/index.html),但是他的css或者js指向的文件路径可能是(http://localhost:8080/css/yourstyle.css)这样一来,就资源加载失效了。

已经有N个群友遇到过这个问题,下面详细说说这个解决的方法: 其实只要在你自己的Config中找到以下方法

<!-- lang: java -->
public void configHandler(Handlers me) {  
  
    me.add(new ContextPathHandler("contextPath"));//假如这个
} 

然后在你的模版页面里面加入以上这个“contextPath”的变量就行 假如你的模版引擎是FreeMarker,你就加${contextPath} 假如你的模版引擎是JSP,你就加${contextPath} 也就是这样

<link src="${contextPath}/css/style.css" type="type/css" rel="stylesheet"> js也是类似。 基本这样写,能够解决你80%的问题,假如你故意写错这个加载路径不在讨论的范围之类。所以我认为,使用Jfinal的时候,资源文件的加载路径都是建议使用绝对路径而不是相对路径.因为这样很好排错!!!

转载于:https://my.oschina.net/u/257950/blog/267982

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值