1 支援了類似freemarker的 general get,即如果模型有乙個public object get(string key);可以在模板中當著屬性引用 如:
$,或者採用方式 如$
2 通過config類來建立grouptemplate。config 缺省會先裝載 /org/bee/tl/core/beetl-default.properties, 然後如果classpath 下存在beetl.properties, 再裝載或者覆蓋其屬性。beetl-default.properties 內容如下:
####### 預設配置
delimiter_placeholder_start= $
delimiter_statement_start= <%
delimiter_statement_end=%
>
native_call = true
compile_class= false
direct_byte_output = false
template_root=
template_charset = gbk
template_cache_check_period = 2
template_class_folder=
error_handler = org.bee.tl.core.defaulterrorhandler
mvc_strict = false
# 內部使用
debug= false
####### 預設配置結束
####### 效能最佳配置開始
#compile_class=true
#direct_byte_output = true
######## 效能最佳配置結束
####### 嚴格 mvc 配置開始
#mvc_strict = true
#native_call = false
######## 嚴格 mvc 配置結束
####### 編譯成 class 的其他選項開始,未完全測試,暫時不支援
#compile_class_keep_source=false
#optimize_compile_latter=false
#optimize_compile_worker_num=2
####### 編譯成 class 的其他選項結束
3 對安全輸出做了增強,總結如下:
安全輸出是任何乙個模板引擎必須重視的問題,否則,將極大困擾模板開發者。 beetl 中,如果要輸出的模板變數為 null ,則 beetl 將不做輸出,這點不同於 jsp , jsp 輸出 null ,也不同於 feemarker ,如果沒有用 !, 它會報錯 .
模板中還有倆中情況 會導致模板輸出異常
l 有時候模板變數並不存在(譬如子模板裡)
l 模板變數為 null ,但輸出的是此變數的乙個屬性,如 $
針對前倆種種 情況,可以在變數引用後加上!以提醒 beetl 這是乙個安全輸出的變數。
如 $, 即使 user 不存在,或者 user 為 null ,或者 user.wife 為 null ,或者 user.wife.name 為 null beetl 都不將輸出
可以在 ! 後增加乙個常量(字串,數字型別),或者另外乙個變數,方法,本地呼叫,作為預設輸出,譬如
$ ,如果 user 為 null ,或者 user.wife 為 null ,或者 user.wife.name 為 null ,輸出 」
單身 」
譬如 $ , 表示如果 user 為 null ,或者 user. birthday 為 null ,輸出 system.constants.defaultbir
l 還有一種情況很少發生,但也有可能,輸出模板變數發生的任何異常,如變數內部丟擲的乙個異常
這需要使用格式 $, 這樣,在變數引用發生任何異常情況下,都不作輸出,譬如
$, , beetl 將會呼叫 user.getname() 方法,如果發生異常, beetl 將不會忽略此異常,繼續渲染
如下是預編譯後的**
trycatch(exception ex)
值得注意的是,在變數後加上 ! 不僅僅可以應用於佔位符輸出 ( 但主要是應用於佔位符輸出 ) ,也可以用於表示式中,如:
<%
vark = user.name!'n/a'+user.age!;
%> $
如果 user 為 null ,則 k 值將為 n/a
4 與struts2結合,只需要配置一下
5 支援定乙個超級變數,var varname = {};如下<%var a = .
<%
};%>
$
這樣輸出是"123."
M12D15css 常用樣式
html的基礎標籤 p h1 br dl p hr h1 dd li 塊級標籤 a img i b strong input 行級標籤 display block 設定元素的屬性為顯示display none 樹沒了 坑也沒了 visibility visible 設定元素為可見 visibilit...
通過修改SystemInit匹配12M外部晶振
庫函式3.5版本下stm32f103rc預設的外部時鐘是8mhz,一般我們都備品最高時鐘72mhz,那如果外部時鐘是12mhz的話怎麼倍頻呢?1.自己配置時鐘,也就是例程中的函式rcc config 2.修改庫函式裡面的一些配置 1 找到通過啟動檔案startup stm32f10x hd.s找到系...
STM32 F103 外部晶振8M改為12M
stm32 實現外部晶振變換有2種方法 第一種修改系統庫函式 第一步,開啟stm32f10x.h,將 define hse value uint32 t 8000000 修改為 define hse value uint32 t 12000000 重要必須做 第二步,開啟system stm32f1...