Beetl 1 2M1 最新增強功能

2021-09-01 10:36:05 字數 2494 閱讀 9022

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...