這一小節(jié),我們將一起玩2個(gè)好玩的技能點(diǎn)龟梦,第一個(gè)是通過(guò)java類來(lái)增強(qiáng)JTE(JFinal Template Engine)隐锭;第二個(gè)是通過(guò)共享對(duì)象來(lái)增強(qiáng)JTE。好啦计贰,讓我們一起開車钦睡!
1、為什么需要使用java類增強(qiáng)指令躁倒?
個(gè)人的愚見是:在模板上最好還是寫一些簡(jiǎn)單明了的代碼荞怒,稍微復(fù)雜一點(diǎn)的代碼還是寫在java類的業(yè)務(wù)層;當(dāng)然這樣也讓代碼具有可重用性秧秉。
使用java類增強(qiáng)JTE無(wú)需繼承任何類或者實(shí)現(xiàn)接口褐桌,這是一個(gè)比較好的地方,這樣做可以實(shí)現(xiàn)解耦福贞。首先我們得編寫一個(gè)普通的java類撩嚼,并定一個(gè)或多個(gè)方法。在Now類中挖帘,編寫一個(gè)SayHello()方法完丽,該方法接受一個(gè)String類型的參數(shù),代碼如下:
package com.demo.test;
public class Now{
public String SayHello(String name){
return "hello "+name+",歡迎你進(jìn)入王者峽谷拇舀!";
}
}
代碼已經(jīng)寫完了逻族,那總得有個(gè)配置的地方吧?我們得通知jfinal骄崩,這是需要添加的方法聘鳞。是的,我們只需要在模板引擎的配置項(xiàng)中配置需要增強(qiáng)的java類的實(shí)例即可要拂。使用方法如下:
public void configEngine(Engine me) {
//添加共享方法的java類實(shí)例
me.addSharedMethod(new Now());
}
到此為止抠璃,即可編寫HTML頁(yè)面代碼,并調(diào)用SayHello方法脱惰。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jfinal模板引擎之二十二</title>
</head>
<body>
#(SayHello("yetangtang"))
</body>
</html>
好激動(dòng)搏嗡,一起來(lái)查看效果!
2、通過(guò)共享對(duì)象增強(qiáng)JTE
從標(biāo)題其實(shí)就可以理解采盒,其實(shí)這個(gè)黑科技就是添加全局的對(duì)象來(lái)方便操作旧乞。接下來(lái),我們需要改造上面的方法磅氨。第一步尺栖,先去修改配置。
public void configEngine(Engine me) {
//假裝Now類烦租,是一個(gè)工具類
me.addSharedObject("my_util", new Now());
//假裝SayHello的人不會(huì)有什么變化延赌,是不是有點(diǎn)常量的趕腳
me.addSharedObject("yetangtang","sugarYe");
}
是時(shí)候改造模板頁(yè)面上的代碼,見證奇跡了左权。通過(guò)代碼可以看出來(lái)是直接通過(guò)對(duì)象名調(diào)用方法的皮胡,跟前面的方法調(diào)用有所不同。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jfinal模板引擎之二十二</title>
</head>
<body>
#(my_util.SayHello(yetangtang))
</body>
</html>
老規(guī)矩赏迟,有圖有真相屡贺。
PS:好了,小伙伴們锌杀,祝你們學(xué)習(xí)愉快甩栈!請(qǐng)更多的閱讀官方文檔。如果想和更多的小伙伴一起愉快的寫代碼糕再,可以加490373584(qq群量没,嘻嘻~)!