集成beetl

基本信息

在MainModule声明@Views,引入BeetlViewMaker

  1. @Views({BeetlViewMaker.class})

在conf目录beetl.properties下添加配置文件

  1. RESOURCE_LOADER=org.beetl.core.resource.WebAppResourceLoader
  2. #ERROR_HANDLER=net.wendal.nutzbook.beetl.LogErrorHandler
  3. RESOURCE.root=/WEB-INF/templates/beetl

在目录 /WebContent/WEB-INF/templates/beetl 下添加一个模板, hello.html

  1. 总共 ${obj.list.~size}
  2. <%
  3. for(user in obj.list){
  4. %>
  5. hello,${user.nickname};
  6. <%}%>
  7. 当前页${obj.pager.pageNumber},总共${obj.pager.pageCount}页

新建个BeetlTemplateModule类,加入下述方法

  1. @At
  2. @Ok("beetl:hello.html")
  3. @Fail("void") // beelt的机制导致只能使用void,详细原因看nutzbook中的代码吧
  4. public Object hello() {
  5. QueryResult qr = new QueryResult();
  6. Pager pager = dao.createPager(1, 20);
  7. pager.setRecordCount(dao.count(UserProfile.class));
  8. qr.setPager(pager);
  9. qr.setList(dao.query(UserProfile.class, null, pager));
  10. return qr;
  11. }

访问该入口方法即可看到效果

可能出现的问题

  • 找不到模板, 需要在beetl.properties中把RESOURCE.root设置为绝对路径,貌似新版beetl已经解决这个问题.