Web提供的全局变量

Web集成模块向模板提供web标准的变量,做如下说明

  • request 中的所有attribute.在模板中可以直接通过attribute name 来引用,如在controller层 request.setAttribute("user",user),则在模板中可以直接用${user.name} .
  • session 提供了session会话,模板通过session["name"],或者session.name 引用session里的变量.注意,session并非serlvet里的标准session对象。参考servlet来获取HTTPSession。
  • request 标准的HTTPServletRequest,可以在模板里引用request属性(getter),如${request.requestURL}。
  • parameter 读取用户提交的参数。如${parameter.userId} (仅仅2.2.7以上版本支持)
  • ctxPath Web应用ContextPath
  • servlet 是WebVariable的实例,包含了HTTPSession,HTTPServletRequest,HTTPServletResponse.三个属性,模板中可以通过request,response,session 来引用,如 ${servlet.request.requestURL};
  • 所有的GroupTemplate的共享变量
  • pageCtx是一个内置方法 ,仅仅在web开发中,用于设置一个变量,然后可以在页面渲染过程中,调用此api获取,如pageCtx("title","用户添加页面"),在其后任何地方,可以pageCtx("title") 获取该变量。(仅仅2.2.7以上版本支持)

你可以在模板任何地方访问这些变量

如果你需要扩展更多属性,你也可以配置beetl.properties配置文件的WEBAPP_EXT属性,实现WebRenderExt接口,在渲染模板之前增加自己的扩展,如:

  1. RESOURCE.root=/WEB-INF/views
  2. WEBAPP_EXT = com.park.oss.util.GlobalExt
  1. public class GlobalExt implements WebRenderExt{
  2. static long version = System.currentTimeMillis();
  3. @Override
  4. public void modify(Template template, GroupTemplate arg1, HttpServletRequest arg2, HttpServletResponse arg3) {
  5. //js,css 的版本编号
  6. template.binding("sysVersion",version);
  7. }
  8. }

这样,每次在模板里都可以访问变量sysVersion了,不需要在controller里设置,或者通过servlet filter来设置