• JFinal使用笔记1-部署demo项目到本地tomcat


    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 {

      非常感谢
  • 相关阅读:
    第五次站立会议
    第四次站立会议
    迪杰斯特拉算法求最短路径问题
    数组课堂作业
    java2
    Java书写add函数
    《大道至简》第二章(是懒人创造了方法)读后感
    大二暑假周进度报告之四
    大二暑假周进度报告之三
    大二暑假周进度报告之二
  • 原文地址:https://www.cnblogs.com/tc310/p/4644681.html
Copyright © 2020-2023  润新知