1. jFinal在頁面取值是如何做到的
render系列方法
render系列方法將渲染不同類型的視圖並返回給客戶端。JFinal目前支持的視圖類型有:JFinal Template、FreeMarker、JSP、Velocity、JSON、File、Text、Html、QrCode 二維碼 等等。除了JFinal支持的視圖型以外,還可以通過繼承Render抽象類來無限擴展視圖類型。
通常情況下使用Controller.render(String)方法來渲染視圖,使用Controller.render(String)時的視圖類型由JFinalConfig.configConstant(Constants constants)配置中的constants. setViewType(ViewType)來決定,該設置方法支持的ViewType有:JFINAL_TEMPLATE、FreeMarker、JSP、Velocity,不進行配置時的預設配置為JFINAL_TEMPLATE。
此外,還可以通過 constants.setRenderFactory(IRenderFactory)來設置Controller中所有render系列方法所使用的Render實現類。
以上有很多視圖,我就說下默認的最好用的:JFinal Template
JFinal Template Engine 採用獨創的 DKFF (Dynamic Key Feature Forward)詞法分析演算法以及獨創的DLRD (Double Layer Recursive Descent)語法分析演算法,極大減少了代碼量,降低了學習成本,並提升了用戶體驗。
與以往任何一款 java 模板引擎都有顯著的不同,極簡設計、獨創演算法、極爽開發體驗,從根本上重新定義了模板引擎
JFinal 模板引擎專為 java 開發者打造,所以堅持兩個核心設計理念:一是在模板中可以直接與 java 代碼通暢地交互,二是盡可能沿用 java 語法規則,將學習成本降到極致。
因此,立即掌握 90% 的用法,只需要記住一句話:JFinal 模板引擎表達式與 java 是直接打通的。
1、輸出指令#( )
與幾乎所有 java 模板引擎不同,JFinal Template Engine消滅了插值指令這個原本獨立的概念,而是將其當成是所有指令中的一員,僅僅是指令名稱省略了而已。因此,該指令的定界符與普通指令一樣為小括弧,從而不必像其它模板引擎一樣引入額外的如大括弧般的定界符。
#(…)輸出指令的使用極為簡單,只需要為該指令傳入前面6.4節中介紹的任何錶達式即可,指令會將這些表達式的求值結果進行輸出,特別注意,當表達式的值為null時沒有任何輸出,更不會報異常。所以,對於 #(value) 這類輸出不需要對value進行null值判斷,
#(value)
#(object.field)
#(object.field??)
#(a>b?x:y)
#(seoTitle??"JFinal俱樂部")
#(object.method(),null)
更多用法,還是要去官網看下文檔:網頁鏈接
2. 怎麼把 json 格式轉換成 數組格式
varobj={"pieTes":[{"colors":"Sony","value":7},{"colors":"Samsumg","value":14},{"colors":"LG","value":21},{"colors":"Vizio","value":34},{"colors":"Insignia","value":24}]};
vararr=newArray();
for(variinx.pieTes){
arr.push([x.pieTes[i].colors,x.pieTes[i].value]);
}
alert(arr);
//輸出Sony,7,Samsung,14,LG,21,Vizio,34,Insignia,24
alert不會以數組形式顯示,實際結果應該如圖所示console.log(arr);