UDN-企业互联网技术人气社区

板块导航

浏览  : 1135
回复  : 0

[讨论交流] 关于JAVA EE项目

[复制链接]
王许柔的头像 楼主
  在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

  在有Struts部署的Java EE环境中,我们一般把jsp页面写在WebRoot\WEB-INF\content 目录下,这样使得jsp页面一定需要struts的控制转发才可访问,提高页面安全性。

  但是今天在jsp页面中应用WebRoot目录中的css,js文件发现十分困难,先看看我的文件结构:
1.png

  目标是在index.jsp中访问default.css。

  defautl.css是在index.jsp目录的父目录的父目录的CSS目录下。所以我这样写:

  ps:空格为故意添加,不知为何会自动变成博客园的网址
  1.         <link href="../ ../css/default.css" rel="stylesheet" type="text/css"/>
  2.         <link href="../ ../css/uploadify.css" rel="stylesheet" type="text/css"/>
复制代码

  在Eclipes中也出现超链接提示,说明目录正确,但是结果失败。

  查询资料后,在百度百科中看到:

  http://baike.baidu.com/view/1745468.htm

  TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

  从上面的实验可以看出,不但是直接访问,使用" ../ ../ "之类的间接访问也不能成功。

  在此多方查询资料之后,尝试使用如下方法访问:
  1.          <!-- 输出为项目根目录,即WebRoot -->
  2.          <%String path = request.getContextPath(); %>
  3.          <link href="${path}/css/default.css" rel="stylesheet" type="text/css"/>
  4.          <link href="${path}/css/uploadify.css" rel="stylesheet" type="text/css"/>
复制代码

  果不其然,页面成功读出了css文件中的样式,达到目的。

  不过此页面中存在java脚本,不够规范,查询资料后,用以下纯EL表达式实现:
  1.      <c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
  2.          <link href="${path}/css/default.css" rel="stylesheet" type="text/css"/>
  3.          <link href="${path}/css/uploadify.css" rel="stylesheet" type="text/css"/>
复制代码

  先将ContextPath放如page中,再使用el表达式取出,问题得以解决。

  但是,也有不少程序猿是在用Struts_2的标签,要做到上面的效果,就有区别了

  Struts_2的标签要访问到 pageContext.request.contextPath,写法上就与jstl的有区别
  1.     <s:set value="#request.get('javax.servlet.forward.context_path')" var="cssPath" scope="page"/>
  2.     <link rel="stylesheet" href="${cssPath}/css/index.css" />
复制代码

  Struts_2标签set的value属性要进行访问对象,语法就是 value="#对象" 或者 value="%{对象}"两种写法

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部