博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JFinal使用笔记1-部署demo项目到本地tomcat
阅读量:4967 次
发布时间:2019-06-12

本文共 2435 字,大约阅读时间需要 8 分钟。

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>
这里要写绝对路径 jsp标签里的绝对路径是带项目名的,静态文件中的绝对路径指的是服务器的根路径,不带项目名 

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 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包了
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"
>
在前台直接跳转的时候,也会出现路径问题,解决办法与base类似 
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 {

    非常感谢

转载于:https://www.cnblogs.com/tc310/p/4644681.html

你可能感兴趣的文章
java中的合同打印_比较方法违反了Java 7中的一般合同
查看>>
php 位运算与权限,怎么在PHP中使用位运算对网站的权限进行管理
查看>>
php include效率,php include类文件超时
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
wcdma下行如何解扩解扰 matlab,WCDMA技术基础.ppt
查看>>
MySQL date_format() 函数
查看>>
mysql 时间处理
查看>>
mysql adddate()函数
查看>>
mysql addtime() 函数
查看>>
mysql 根据日期时间查询数据
查看>>
mysql sin() 函数
查看>>
mysql upper() 函数
查看>>
mysql 子查询
查看>>
mysql 自联结
查看>>
mysql union 组合查询
查看>>
socket tcp
查看>>
spiral-matrix-ii &i 生成顺时针序列
查看>>
python set集合方法总结
查看>>
python考点
查看>>
DataMining--Python基础入门
查看>>