http://my.oschina.net/u/173975/blog/110261javascript
嘗試用JFinal開發個開源的社團管理系統,把開發過程當中遇到的問題和解決辦法記下來,以供參考。css
部署jfinal_demo_for_jsp到tomcat上java
問題一、css, js文件加載失敗。
緣由:路徑問題
解決辦法:
一、將「/css/manage.css」等相似的路徑改成"css/manage.css",去掉最前面的「/」,不在根路徑下的要改爲形如"../css/manage.css"等相對路徑。若是項目是部署在tomcat root目錄下就能夠不用改。
二、發現使用相對路徑仍是不方便,jfinal會在路徑中包含子文件夾,仍是抽取個文件出來,寫絕對路徑吧,其餘文件包含這個文件就能夠了。 其中jquery換成了最新版的,比demo裏的1.4.4版本大了13.6kjquery
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>
|
三、前臺問題解決了,後臺又出問題。最終採用的解決辦法是:將tomcat的根路徑指定爲項目文件夾
修改/conf/server.xml,在</host>標籤以前加入如下內容web
1
|
<Context path=
""
docBase=
"/jfinal_demo"
debug=
"0"
reloadable=
"true"
crossContext=
"true"
/>
|
改完以後無論前臺仍是後臺的路徑,直接以"/"開頭就能夠了
問題二、系統異常
嚴重: Servlet.service() for servlet jsp threw exception
org.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包了
四、經過<base>標籤解決路徑問題apache
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;
|