Skip to content

tietang/hare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hare template tags

几个简单定义的JSP标签解决了在JavaEE项目开中页面布局及页面样式更换的麻烦。 通过u:body,u:define,u:insert三个标签即可实现页面的模板化开发。 项目是用JSP/struts2来测试可用,但标签与struts2无任何依赖关系。

可能有人会疑问sitemesh和tiles是干嘛的,我也是用过这两个,不用她们有四个原因:

1、需要侵入的配置,容易出错。
2、对于有些MVC技术支持不是很完美。
3、性能影响。
4、使用过于繁琐,对于有些简单问题,过于复杂化了。

已测试通过的Web容器和JavaEE服务器列表:

apache-tomcat-6.0.x
glassfish-3.0.1/glassfish-3.0.1-web
glassfish-installer-v2.1.1
resin-3.1.10
resin-4.0.10
jetty-6.1.25

失败的服务器:

jetty-hightide-7.1.6
jetty-hightide-8.0.0.M1

由于其在部署失败,未找具体原因,其部署失败是struts2不能正确部署引起;原则上应该不会有问题。 由于条件其他服务器未作测试。

例子,参考源代码包中的/demo/demo.jsp和template.jsp文件 基本例子:

配置模板方法:

** 1. 默认不做任何配置:** 默认路径为context下:/_layouts/layout.jsp ** 2. web.xml中配置默认模板:** DEFAULT_HARE_LAYOUT /demo/template.jsp ** 3. 在<u:body> template属性** template="template.jsp"

优先级:<u:body> template属性 > web.xml中配置默认模板 > 默认路径

模板页:template.jsp

<body>
输出的自定义属性值:${request._body_attr.action}
<div>
	 标题:<u:insert name="header" />
</div>
<div>
	 页面内容<u:insert name="body" />
</div>
<div>
	页面脚部:<u:insert name="footer" />
</div>
</body>

使用页面:


不显示的文字和内容<hr/><hr/>
<body>
<u:body template="template.jsp" action="自定义属性值"	 >
不显示的文字<hr/><hr/>
				<u:define name="header">标题</u:define>
不显示的文字和内容<hr/><hr/>
				<u:define name="body">
								<img src="http://www.google.com.hk/intl/zh-CN/images/logo_cn.png" />
				</u:define> 
不显示的文字和内容<hr/><hr/>

</body>
不显示的文字和内容<hr/><hr/>

About

template tags

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages