## 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等機制設置模板需要的公共變量,是個更值得推薦的辦法
- Beetl 3 中文文檔
- 第一部分 基礎用法
- 1.1 安裝
- 1.2 快速開始
- 1.3 模板基礎配置
- 1.4 模板加載器
- 1.5 定界符與占位符
- 1.6 注釋
- 1.7 變量定義
- 1.8 屬性
- 1.9 數學表達式
- 1.10 循環語句
- 1.11 條件語句
- 1.12 異常捕獲
- 1.13 虛擬屬性
- 1.14 函數調用
- 1.15 安全輸出(重要)
- 1.16 輸出格式化
- 1.17 標簽
- 1.18 調用Java方法與屬性
- 1.19 嚴格MVC控制
- 1.20 指令
- 1.21 錯誤處理
- 1.22 Beetl小工具
- 1.23 Escape
- 第二部分 高級用法
- 2.1 配置GroupTemplate
- 2.2 自定義方法
- 2.3 自定義格式化函數
- 2.4 自定義標簽
- 2.5 自定義虛擬屬性
- 2.6 使用額外的資源加載器
- 2.7 自定義資源加載器
- 2.8 使用CompositeResourceLoader
- 2.9 自定義錯誤處理器
- 2.10 自定義安全管理器
- 2.11 注冊全局共享變量
- 2.12 自定義布局
- 2.13 性能優化
- 2.14 定制輸出
- 2.15 定制模板引擎
- 2.16 直接運行Beetl腳本
- 2.17 模板校驗
- 第三部分 Web 集成
- 3.1 Web提供的全局變量
- 3.2 集成技術開發指南
- 3.3 Servlet集成
- 3.4 SpringMVC集成
- 3.5 Spring Boot集成
- 3.6 Jodd集成
- 3.7 JFinal4 集成方案
- 3.8 Nutz集成
- 3.9 Struts2集成
- 3.10 整合ajax的局部渲染技術
- 3.11 在頁面輸出錯誤提示信息
- 附錄
- 4.1 內置方法
- 4.2 Spring相關函數
- 4.3 Spring security
- 4.4 shiro
- 4.5 內置格式化方法
- 4.6 內置標簽函數
- 4.7 內置html標簽
- 4.8 性能優化
- 4.9 Eclipse 插件
- 4.10 性能測試對比