前段时间做了用Spring Security实现的登录和访问权限控制的功能,但是page render使用的是InternalResourceResolver,即在spring的servlet配置文件中做如下配置:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>

当controller返回一个view时,Spring MVC就会根据该配置中的设置到/WEB-INF/pages/路径下寻找view名.jsp这个文件来进行页面渲染。

通过这样的方法,我在登录页面上显示出来的是用最基本的html实现的一个form,没有任何的样式和图片。

现在我对这个页面进行了一些css的样式和image的修饰,css和images分别放在了/WEB-INF/css/和/WEB-INF/images/路径下。这样,我的WEB-INF目录下的结构是这样的:

按照一般的相对路径,在jsp里这样写可以找到images里和css里的文件:

<link rel="stylesheet" type="text/css" href="../css/style.css"> <img src="../images/logo.png"> 

但是当程序在web container里运行时,这个相对地址并不是我们的硬盘里的相对地址,而是项目在web container里的相对地址。当页面进行显示时,由于InternalResourceViewResolver中的配置,使得对http://localhost:8080/SpringSecurity/login的访问是在/WEB-INF/pages/路径下找到相应的jsp。

所以在Spring MVC里希望通过相对路径找到resource文件时需要做下面的配置:

在applicationContext.xml中:

<mvc:resources mapping="/images/*" location="WEB-INF/images/" /><mvc:resources mapping="/css/*" location="WEB-INF/css/" />

然后在jsp的href里:

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"> 

${pageContext.request.contextPath}就是将url direct到了当前目录下,然后再通过applicationContext中的配置来对该相对路径进行map。这样就能成功的在页面上显示images和css了。

转载于:https://www.cnblogs.com/harolei/p/3192206.html

Spring MVC page render时jsp中元素相对路径的解决办法相关推荐

  1. Vscode调试设置中的python路径无效解决办法

    Vscode调试设置中的python路径无效解决办法 如果你已经试过修改"default interpreter Path"但无效可以继续往下看 如果你已经试过修改"de ...

  2. tomcat启动时窗口中出现中文乱码的解决办法

    免安装版通过startup.bat文件启动tomcat后,启动窗口有时会出现中文乱码,虽然这些对tomcat本身的使用没有任何影响,但是有时候报错会扰乱你的视线. 那就要修复这个问题,对于乱码问题,本 ...

  3. 加入域时“找不到网络路径”的解决办法

    很多时候在加入域时报"找不到网络路径"的错误,一般按这样的思路来解决 1.检查服务computer brower,remote procedure(RPC),tcp/ip netb ...

  4. 【Vivado那些事儿】Vivado中运行时出现visual c++运行错误的解决办法

    Vivado中运行时出现visual c++运行错误的解决办法 Win10系统中运行Vivado一直好好的,某一天突然出现visual c++运行错误,如下图所示: 修复也没什么作用,卸载重装是同样的 ...

  5. 【SpringBoot整合Mybatis】数据库某字段值为空时,接口未返回该字段 解决办法

    [SpringBoot整合Mybatis]数据库字段为空时,接口不返回该字段 解决办法 问题描述: 排查问题: 解决问题: 测试: 参考资料: 今天整合项目的时候,发现了SpringBoot整合Myb ...

  6. VSCode中.py文件找不到路径的解决办法

    遇到的问题: 近期通过VSCode学Python,但由于之前没系统性接触过命令行,所以一度造成了些许麻烦. 在VSCode里面运行xxx.py时,由于刚开始工作目录没有设置,按初始化的目录,需要一步步 ...

  7. mysql 启动安全模式_“ Word上次启动时失败,以安全模式启动Word ....”解决办法...

    " Word上次启动时失败,以安全模式启动Word ...."解决办法  Word上次启动时失败,以安全模式启动word将帮助您纠正或发现启动中的问题,下一次成功启动应用程序.但是 ...

  8. GDI+中发生一般性错误的解决办法 from http://www.cnblogs.com/winzheng/archive/2008/12/23/1360440.html...

    GDI+中发生一般性错误的解决办法 这个错误经常发生,代码如下:    private  static  byte[] GetBytes (Image image)         {         ...

  9. 织梦DEDECMS网站留言板提交时验证码错误返回空白页的解决办法

    织梦DEDECMS模板网站留言板提交时验证码错误返回空白页的解决办法: 默认情况下,如果我们使用DEDE模板中的默认留言板时,如果留言信息不正确或者输入内容为空时,dedecms系统就会返回一个空白页 ...

最新文章

  1. android 分辨率合集,Android编程之分辨率处理相关代码段合集
  2. python正则表达式——regex模块
  3. MySQL查询的进阶操作--子查询(内查询)
  4. LOJ:出纳员问题(差分约束)
  5. xftp6设置默认打开文件的程序_xftp6如何使用?xftp6传输文件的使用详细方法--系统之家...
  6. 新版vue-cli搭建多页面应用
  7. 解决Linux上解压tar.gz文件报错 (gzip: stdin: not in gzip format)
  8. Python生成二维码-qrcode
  9. shell实战训练营Day2
  10. 2B: 怎么把黑科技卖给顶级金融机构? | 甲子光年
  11. 【BZOJ-3573】米特运输 树形DP
  12. 【Python】python帮助文档
  13. Java项目:微信小程序点餐系统(java+微信小程序+Mysql)
  14. 方便简洁的在线WEB多人网页聊天室系统源码
  15. 锁相环(PLL)专题一:鉴相器PD
  16. 深蓝学院-多传感器融合定位-第4章作业
  17. 武汉城建学院计算机专业柴曲,采访对话丨在世界一流的柴院学音乐,是怎样一种感受?...
  18. Android 交互动画的统一实践
  19. android 截屏 简书,Android 内置应用截屏方法
  20. 最全国外优秀技术网站推荐

热门文章

  1. WCF部署:让IIS有权限访问证书文件
  2. php柱形图上显示数字怎么改回来,sigmaplot可以在柱状图上显示数值
  3. C++实现在正方体8个顶点上放数字使得三组相对的面上的4个顶点的和都相等
  4. 四位先行进位电路逻辑表达式_四位超前进位加法器
  5. CSDN Markdown编辑器的使用
  6. 从源码分析DEARGUI之add_tree_node
  7. python中PIL模块
  8. 我理解的 iOS 与 Android 的区别
  9. ASP.NET WebApi技术从入门到实战演练
  10. 2个byte类型数据相加(转型问题的分析)