appfuse1.9.4中siteMesh2.2.1的应用中一定要注意[原创]

本文介绍了解决在使用SiteMesh装饰器时遇到的问题,特别是当列表过宽导致左侧菜单消失的情况。作者通过创建新的装饰器模板并调整配置,最终实现了正确的布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发中发现用displayTag装页面时,如果统计的列表过宽,你如果一个月的31天数据的统计,左边的struts-menu菜单就不见了,没得法,不得不要修改siteMesh的装饰器模板,增加一个打印的decorator的文件,为了测试,先在decorator增加一个print打印模板的JSP文件,取名为printable.jsp,然后随便写如下内容到文件中

[code]<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>

<html>
<head>
<title><decorator:title default="Welcome!" /></title>
<decorator:head />
</head>

<body onload="window.print();">
Printed on <%=new java.util.Date()%>.<br/>
<hr noshade="noshade" size="1"/>
<br/>
<decorator:body />
</body>
</html>[/code]
再配置decorators.xml的装饰规则<decorator name="printable" page="printable.jsp">
[code]<pattern>*/print/*</pattern>
</decorator>[/code]
同时把主装饰中[code]<decorators defaultdir="/decorators">
<excludes>
<pattern>/demos/*</pattern>
<pattern>/resources/*</pattern>
<pattern>*/map/*</pattern>
<pattern>/print/*</pattern>
</excludes>[/code]加上/print/*的例外配置,表示/print/*的目录下请求都不使用主装饰器处理,呵

然后我把web/page/print/目录下,建一个所需的printList.jsp文件,让它应用print.jsp的装饰器,以为大功告成了,提交请求,结果还是应用了主装饰器,百般思绪,弄了一上午,不行,出去洗洗回来,查看一下源码,才发现sitemesh的装饰方式在通过在web.xml文件中配过滤器实现的,意味着,目录的请求都是表示http://www.pben.cn/print/类似的方式工作的,如果要应用print目录的规则就得改一下你的form action的链接前面加上/print/路径才行,[u][size=18][color=red][b]关键点:[/b][/color][/size]更改form action=/print/printActionController[/u],再改一下actionservlet.xml的配置把原来指定为”/printActionController"的映射处理更改为“/print/printActionController",重启tomcat,成了,幸福中,希望有弄appfuse方面的朋友,能从我的文章及错误中吸取取经验,呵^_^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值