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>

原文地址:https://www.cnblogs.com/qlqwjy/p/8989917.html

时间: 2024-10-07 15:20:56

SpringMVC控制器 跳转到jsp页面 css img js等文件不起作用 不显示的相关文章

servlet跳转到JSP页面会出现乱码

问题描述:servlet跳转到JSP页面的时候会出现乱码.但是直接访问JSP页面不会出现乱码,乱码情况如图所示 servlet情况 我发现去掉servlet上面的那两句话,JSP乱码情况是没有的, 或者写成下面情况的servlet也可以的 这样也不会出现乱码! 或者把上面四句话全部去掉也不会出现乱码 本人分析(不一定正确)是因为:response.setContentType("text/html"); PrintWriter out = response.getWriter(); 因

多个jsp页面共享一个js对象的超级方法

一个jsp页面为A.jsp,在A.jsp中点击一个按钮打开另一个B.jsp页面.思路如下: 在A.jsp打开B.jsp的事件中,写入如下代码: 1 2 window.top['_CACHE'] = chatFrdList; window.top['_CACHE'][frdUserId] = frdUserId; 其中,chatFrdList定义为var chatFrdList = new Object(); frdUserId为一个用户的id. 那么,在B.jsp的一个事件中,就可以执行下面的操

多个jsp页面共享一个js对象

今天,在项目中遇到一个问题,两个js页面要共享一个就js对象.js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了.而LZ又不想用cookie来存放,一是不安全,二个人喜好.最后发现一种超级方法来解决这个困扰,那就是用window.top['_CACHE']来存放这个变量,即可实现,不同Jsp页面直接的对象共享. var share = { /** * 跨框架数据共享接口 * @param {String} 存储的数据名 * @param {Any} 将要存储的任意数据(无此项则返回被查

SpringMVC中@Control控制器返回的是Jsp页面还是控制器请求的总结

1.返回到JSP页面: return "main" --跳转到 WEB-INF/main.jsp 页面. return "redirect:/main.jsp" --重定向到main.jsp页面,redirect无法访问WEB-INF下的资源文件,因此必须加上.jsp后缀. 2.转发控制器请求: return "forward:/main" --转到 为main的请求上. return "redirect:/main" --重

ajax 如何提交数据到后台jsp页面,以及提交完跳转到jsp页面

我logincheck.jsp页面取传参数代码: String user=request.getParameter("user1"); String pwd=request.getParameter("pwd1"); login.jsp input 取2参数何用ajax 传给logincheck.jsp ================================== $.ajax({ type : "POST", url : baseUrl

PHP分帧后台模板页面css样式,js引入方法

一,首先把下载好的分帧后台模板放到对应的目录中,HTML显示页面放到View目录中,CSS和JS.img图片等公共资源放到include目录中 二.然后开始准备更改CSS和JS , img路径操作:(在操作之前要明白以下几点) 1.     ./   表示是当前目录(表示当前文件所在的目录) 2.     ../  表示是上一级目录(表示当前文件所在目录的上一级目录) 3.    include(require) 引入(包含)      [引入(包含)相当于把引入(包含)的文件复制一份到需要引入

js中全局变量修改后的值不生效【jsp页面中各个js中内容的加载顺序】

一个老项目中,一个jsp文件中有很多个js文件, 现在要在页面上的一个地方判断一个状态,因为一直找不到原来是在哪里修改的那个状态,所以决定不找了,而是在比较靠前引入的一个js中定义一个全局变量,然后在这个js的 $(function(){}} 方法中通过一个ajax向后台获取正确的状态,然后在所有的js都加载完之后根据全局变量的值的状态来修改页面上的逻辑. 但是发现,全局变量被一个外部js修改赋值后,我在jsp页面的最下面居然取不到修改过的值. 请教同事才发现原来原因是 任何一个js文件中的 $

5)关于CSS和js静态文件引入路径

(1)参考资料   thinkphp5手册      视图--->输出替换 (2)方法(1)在我们的application中,找到config.php,在里面输入这样的配置: 1 <?php 2 // +---------------------------------------------------------------------- 3 // | ThinkPHP [ WE CAN DO IT JUST THINK ] 4 // +--------------------------

SpringMVC 无法访问到指定jsp页面可能的原因

出现上图这种页面,controller肯定是找到了,只是试图解析器viewresolver 解析试图失败,原因两种 1.资源hello.jsp文件确实没有放在WEB-INF目录 2.资源文件放在WEB-INF目录下,但是试图解析器配置属性里用的是相对地址,而Controller类上加了@RequestMapping映射地址,类中所有的方法要以该地址作为父路径. <property name="prefix" value="WEB-INF/" />  &l