maven项目pom:
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>版本号</version>
</dependency>
spring-mvc.xml配置视图解析:
<bean id="beetlConfig" class="org.beetl.ext.spring.BeetlGroupUtilConfiguration" init-method="init"/>
<!-- 定义beetl视图文件解析-->
<bean id="viewResolver" class="org.beetl.ext.spring.BeetlSpringViewResolver">
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="suffix" value=".html"/>
</bean>
在resource 目录下创建beetl.properties配置文件 自定义配置:
#自定义配置
#模板根路径
RESOURCE.root = /WEB-INF/views/
#定义模板全局变量的类
WEBAPP_EXT = com.zede.util.GlobalExt
#是否检测文件变化
RESOURCE.autoCheck = true
#在页面输出错误提示信息
ERROR_HANDLER =org.beetl.ext.web.WebErrorHandler
GlobalExt.java:
public class GlobalExt implements WebRenderExt {
/**
* 这里可以配置模板 全局变量 如:template.binding("version","1.0");
*/
@Override
public void modify(Template template, GroupTemplate gtemplate, HttpServletRequest request,
HttpServletResponse response) {
template.binding("version", "1.0");
}
}
可以实现所有模板都能读取 ${version} 这个变量
ajax的局部渲染技术:
<!-- index.html -->
<div>something....</div>
<div id="table-container" >
<%
//ajax片段开始
#ajax userTable: {
%>
<table>
<tr><td width=100>id</td><td width=100>姓名</td></tr>
<% for(user in users){ %>
<tr><td>${user.id}</td><td>${user.name}</td></tr>
<% } %>
</table>
当前页面<span id="current">${page!1}</span><span style="width:20px"></span>
<a href="#"><span class="page">next</span></a> <a href="#" ><span class="page">pre</span></a>
<%
//ajax片段结尾
}
%>
#ajax 用于告诉告诉模板引擎,此处是个局部渲染标记,标记为"userTable",对于正常渲染视图"index.html"页面,#ajax标记没什么用处,table仍能得到正常渲染。如果渲染的视图是index.html#userTable,则模板只会渲染#ajax标记得模板片段,其他部分将忽略。
for example ( spring MVC)
@requestMapping("xxx")
public String actionName(){
return "index#userTable";
}
文档:http://ibeetl.com/guide/#beetl