SiteMesh2-sitemesh.xml的ParameterDecoratorMapper映射器的用法
2024-08-30 06:35:05
继续使用上一章http://www.cnblogs.com/EasonJim/p/7086916.html的例子,改造成使用ParameterDecoratorMapper映射器的方法,这个映射器不需要通过匹配URL和在页面上写模板路径去实现,只需要通过URL上传入指定参数即可。
修改配置如下:
1、sitemesh.xml引入ParameterDecoratorMapper映射器
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/> <page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
<param name="property.1" value="meta.decorator" />
<param name="property.2" value="decorator" />
<!-- 注意这一行指定<meta/>标签的 name 属性作为PageDecorator的识别符号 -->
<param name="property.3" value="meta.theme" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper"/>
<mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper"/>
<mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
<param name="decorator" value="printable" />
<param name="parameter.name" value="printable" />
<param name="parameter.value" value="true" />
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper"/>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
</decorator-mappers>
</sitemesh>
2、新建test2.jsp页面,这个页面无需写任何模板
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<body>
<h1>Test2</h1>
</body>
</html>
3、访问URL变成http://localhost:8080/test1/test2.jsp?decorator=basic-theme
而如果URL没有参数,那么会变成原始页面
4、为URL后面的参数指定自定义的参数名,修改sitemesh.xml中映射器的写法
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="theme"/>
</mapper>
访问URL变成:http://localhost:8080/test1/test2.jsp?theme=basic-theme
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="theme"/>
<param name="parameter.name" value="confirm"/>
<param name="parameter.value" value="true"/>
</mapper>
增加了两个参数,那么访问将变成访问URI时:test2.jsp?theme=basic-theme&confirm=true将映射装饰器basic-theme。那里的URI是test2.jsp?theme=basic-theme和test2.jsp?theme=basic-theme&confirm=false不会返回任何装饰器。
也就是说在访问时增加确认参数。
测试工程:https://github.com/easonjim/5_java_example/tree/master/sitemesh/test3
参考:
最新文章
- android中工作线程安全
- Netty In Action
- lkx开发日志2-第一次团队讨论
- SqlServer2008 无法修改表,超时时间已到 在操作完成之前超时解决方法
- xml 中转意字符&;\/使用方法
- 28、Oracle(四)用户权限控制
- MATERIALIZED VIEW
- 【转】跟着开涛学SpringMVC
- WCF Concurrency (Single, Multiple, and Reentrant) and Throttling
- Ini文件操作类
- mysql死锁问题分析(转)
- java major version(转)
- Django框架全面讲解
- 尝试向树莓派3B引入Drbian 9 arm64-PART 1
- html checkbox样式美化
- CentOS 7安全加固
- 数据库操作中如何批量执行多个sql文件?
- .NET MVC 后台接受base64的上传图片
- Dubbo浅谈
- Masonry 动画
热门文章
- ACM_递推题目系列之一涂色问题(递推dp)
- jQuery伪分页效果
- 理解 CSS 布局和块级格式上下文
- blender_(uv应用)................http://digitalman.blog.163.com/blog/static/23874605620174172058299/
- CAD指定区域绘制一个jpg文件
- 【原】thinkphp实现存储session至redis
- Getting start with dbus in systemd (03) - sd-bus.h 使用例子 (systemd version>;=221)
- 小程序 textarea ios兼容解决
- linux下C/C++程序的内存布局
- C语言中指针的加减运算