http://my.oschina.net/u/173975/blog/110261
尝试用JFinal开发个开源的社团管理系统,把开发过程中遇到的问题和解决办法记下来,以供参考。
部署jfinal_demo_for_jsp到tomcat上
问题1、css, js文件加载失败。
原因:路径问题解决办法:1、将“/css/manage.css”等类似的路径改为"css/manage.css",去掉最前面的“/”,不在根路径下的要改成形如"../css/manage.css"等相对路径。如果项目是部署在tomcat root目录下就可以不用改。2、发现使用相对路径还是不方便,jfinal会在路径中包含子文件夹,还是抽取个文件出来,写绝对路径吧,其他文件包含这个文件就可以了。 其中jquery换成了最新版的,比demo里的1.4.4版本大了13.6k 1 2 3 | <%@ page language= "java" pageEncoding= "UTF-8" %> <link href= "<%=request.getContextPath()%>/css/manage.css" media= "screen" rel= "stylesheet" type= "text/css" /> <script src= "<%=request.getContextPath()%>/js/jquery-1.9.1.min.js" type= "text/javascript" ></script> |
1 | <span></span><jsp:include page= "/inc/inc.jsp" ></jsp:include> |
3、前台问题解决了,后台又出问题。最终采用的解决办法是:将tomcat的根路径指定为项目文件夹
修改/conf/server.xml,在</host>标签之前加入以下内容
1 | <Context path= "" docBase= "/jfinal_demo" debug= "0" reloadable= "true" crossContext= "true" /> |
改完之后不管前台还是后台的路径,直接以"/"开头就可以了
问题2、系统异常严重: Servlet.service() for servlet jsp threw exceptionorg.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application原因:缺少JSTL相关jar包解决办法:加入jstl.jar和standard.jar加入构建路径,同时删除jetty-server-8.1.8.jar,使用tomcat的时候就不需要这个jar包了4、通过<base>标签解决路径问题 1 2 3 4 5 6 7 8 9 10 11 | <% String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/" ; %> <base href= "<%=basePath%>" > <link rel= "stylesheet" type= "text/css" href= "css/common.css" > |
1 2 | var fromPageName= "<%=basePath%>" + "voucherApprove.jsp" ; window.location.href= fromPageName; |
分享到: 3赞
声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。
评论2
- 1楼: 发表于 2013-04-29 03:19路径问题应该用这个解决 /** * Provide a context path to view if you need. * <br> * Example:<br> * In JFinalFilter: handlers.add(new ContextPathHandler("CONTEXT_PATH"));<br> * in freemarker: <img src="${BASE_PATH}/images/logo.png" /> */ public class ContextPathHandler extends Handler {
- 2楼: 发表于 2013-04-30 15:00
引用来自“绝望的八皮”的评论
路径问题应该用这个解决
/*** Provide a context path to view if you need.* <br>* Example:<br>* In JFinalFilter: handlers.add(new ContextPathHandler("CONTEXT_PATH"));<br>* in freemarker: <img src="${BASE_PATH}/images/logo.png" />*/public class ContextPathHandler extends Handler {