🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 3.1 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接口,在渲染模板之前增加自己的扩展,如: ```properties RESOURCE.root=/WEB-INF/views WEBAPP_EXT = com.park.oss.util.GlobalExt ``` ```java public class GlobalExt implements WebRenderExt{ static long version = System.currentTimeMillis(); @Override public void modify(Template template, GroupTemplate arg1, HttpServletRequest arg2, HttpServletResponse arg3) { //js,css 的版本编号 template.binding("sysVersion",version); } } ``` 这样,每次在模板里都可以访问变量sysVersion了,不需要在controller里设置,或者通过servlet filter来设置 对于Web框架,你可以利用Filter等机制设置模板需要的公共变量,是个更值得推荐的办法