在 struts 引用中使用 tiles 模板时,JSP 文件引用外部文件需注意路径问题!

本文探讨了使用 Struts Tiles 插件进行模块化网页布局的方法。通过示例展示了如何在 JSP 页面中引入 CSS 和图片资源,并解释了相对路径设置的重要性。
先给出工程的目录结构:

webproject
|
|-css
| |-head.css
| |-body.css
| |-foot.css
|
|-img
| |-head_bg.jpg
| |-body_gb.jpg
|
|-WEB-INF
| |-pages
| |-head.jsp
| |-body1.jsp
| |-body2.jsp
| |-body3.jsp
| |-layout.jsp
| |-foot.jsp
|
|-index1.jsp
|-index2.jsp
|-index3.jsp

其中 layout.jsp 是模板,index1.jsp 、index2.jsp 和 index3.jsp 的代码如下:

index1.jsp 如下-------------------------------------------------

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<tiles:insert page="/WEB-INF/pages/layout.jsp" flush="true">
<tiles:put name="head" value="head.jsp"></tiles:put>
<tiles:put name="body" value="body1.jsp"></tiles:put>
<tiles:put name="foot" value="foot.jsp"></tiles:put>
</tiles:insert>


index2.jsp 如下-------------------------------------------------

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<tiles:insert page="/WEB-INF/pages/layout.jsp" flush="true">
<tiles:put name="head" value="head.jsp"></tiles:put>
<tiles:put name="body" value="body2.jsp"></tiles:put>
<tiles:put name="foot" value="foot.jsp"></tiles:put>
</tiles:insert>


index2.jsp 如下-------------------------------------------------

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<tiles:insert page="/WEB-INF/pages/layout.jsp" flush="true">
<tiles:put name="head" value="head.jsp"></tiles:put>
<tiles:put name="body" value="body3.jsp"></tiles:put>
<tiles:put name="foot" value="foot.jsp"></tiles:put>
</tiles:insert>

下面给出 layout.jsp 和 head.jsp 的源码

layout.jsp -----------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>head.jsp</title>
</head>
<body>
<tiles:insert attribute="head"></tiles:insert>
<tiles:insert attribute="body"></tiles:insert>
<tiles:insert attribute="foot"></tiles:insert>

</body>
</html>

head.jsp ---------------------------------------------------------

<%@ page language="java" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>head.jsp</title>
<link [b]href="css/header.css"[/b][color=red][/color] rel="stylesheet" type="text/css" />
</head>

<body>
[b]<img src="img/head_bg.gif"/>[/b][color=red][/color]
<div class="head">
<ul>
<li><a href="#">##</a></li>
<li><a href="#">##</a></li>
<li><a href="#">##</a></li>
<li><a href="#">##</a></li>
</ul>
</div>
</body>
</html>

我们注意到,在上面的两个路径中,如果相对于当前的 head.jsp 文件,那么 CSS 的link 路径应该为:
<link [b]href="../../css/header.css"[/b][color=blue][/color] rel="stylesheet" type="text/css" />

同样,引用背景图片的路径也应该为:
[b]<img src="../../img/head_bg.gif"/>[/b][color=blue][/color]

但是,这样是错的!
当工程运行的时,用户请求 index1.jsp 时,用 tiles:insert 来的 head.jsp 将找不到它想引用的 CSS 和背景图片。
因为当用户请求 index1.jsp 时,这时 URL 地址是:[color=red]http://localhost:8080/webproject/[/color]( 在WEB.XML 中配了 index1.jsp 为 welcome-file)
而此时 head.jsp 的路径也在此 (试验出来,没完全确定),故此时 head.jsp 引用的 CSS 和背景图片路径应该从此路径开始。所以 head.jsp 引用它们的路径分别应该为:
<link [b]href="css/header.css"[/b][color=red][/color] rel="stylesheet" type="text/css" />

[b]<img src="img/head_bg.gif"/>[/b][color=red][/color]

不知是否如此,望高人指正!
【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值