SpringMVC控制器 跳轉到jsp頁面 css img js等文件不起作用 不顯示


  

  今天在SpringMVC轉發頁面的時候發現跳轉頁面確實成功,但是JS,CSS等靜態資源不起作用:

 

控制層代碼:

    /**
     * 轉發到查看培養方案詳情的頁面
     * @return
     */
    @RequestMapping("/2TrainSchemeDatail")
    public String forward2TrainSchemeDetail(@RequestParam(defaultValue = "1") String trainSchemeId, Model model){
        model.addAttribute("trainSchemeId",trainSchemeId);
        return "pages/trainingScheme/trainingScheme";
    }

視圖解析器配置:

    <!-- 3.視圖解釋器 -->
    <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/" />
        <property name="suffix" value=".jsp" />
    </bean>

 

 

效果:

 

最后經過分析是JS和CSS的路徑問題:用的是相對路徑,所以找不到資源

 

 

  

解決辦法:

  • 第一種

在JSP頭部加上

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

 

 在css,js,img等資源文件以及訪問控制器的相對路徑改為絕對路徑:

 <%=basePath %>js/jquery-1.9.1.min.js

 

 

    •   第二種  (推薦這種)

JSP設置一個記錄項目名字的變量:如下   ${baseurl} 等價於 /項目名稱

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var="baseurl" value="${pageContext.request.contextPath}"></c:set>
<script type="text/javascript">
    <%--to record pronect Name (contextPath=/jwxt)--%>
    contextPath = "${pageContext.request.contextPath}";
</script>

 

 

JS和CSS路徑改為:

    <link rel="stylesheet" href="${baseurl}/css/font.css">
    <link rel="stylesheet" href="${baseurl}/css/xadmin.css">
    <script type="text/javascript" src="${baseurl}/js/jquery.min.js"></script>
    <script type="text/javascript" src="${baseurl}/lib/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="${baseurl}/js/xadmin.js"></script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM