freemark 自定義標籤 總結

2021-09-01 02:12:32 字數 1538 閱讀 5546

參考:

呼叫:<@d_select id="type_4" optionkey="position" optionvalue="id" list=adspacebolist callback="test();" value="4f0eabc9073c1f0de52b25d2"> 指定list物件名:list=adspacebolist;選項key對應集合中的屬性:optionkey="position";選項value對應集合中的屬性:optionvalue="id";

實現類:

implements templatedirectivemodel ;

public void execute (environment env, map params, templatemodel loopvars, templatedirectivebody body)

throws templateexception, ioexception

//strlist

string strlist = maputils.getstring(params, "strlist");// strlist : 文字:1,:2

if(stringutils.isnotblank(strlist))

}//map

******hash map=(******hash)params.get("map");

if(null!=map)

templatecontext.put("id", id);

template template = env.getconfiguration().gettemplate("/ftl/select.ftl");

template.process(templatecontext, env.getout());

頁面:eval:把字串當做ftl**處理;處理後物件的值要以string的length來判斷,如果直接用??,則物件為空 ;

<#list list as obj>

<#if obj??>

<#assign keys = ('obj.'+ optionkey) >

<#assign values = ('obj.'+ optionvalue) >

<#if ((values?eval)?length gt 0 && (keys?eval)?length gt 0) >

selected>$

最後,還要在專案裡註冊自定義的標籤;

註冊:sothis.properties

sothis.freemarker.directive.d_select.class=com.fangjia.bkoff.util.selectdirective

底層(部分):

private sothisconfig config;

string configlocation = filterconfig.getinitparameter("configlocation");

if (null == configlocation)

config = sothisconfig.initconfig(configlocation);

自定義標籤

由於字典的緣故,當前表中資料存的是字典表的code,所以在頁面顯示的時候需要再次進行轉換。於是我就想到了用標籤來解決這個問題。1.建立自己的標籤 public class displaytag extends tagsupport override public int doendtag throw...

自定義標籤

1 前段時間由於系統需要使用到資料字典,簡而言之就是用下拉將字典的內容顯示出來。我也是參考了一下別人的例項結合自己的業務需求,才將此功能實現。在此將大楷實現步奏記錄下來,以方便以後翻閱。2 在我們專案中使用了2張表來實現此功能。a csms t baseinfo 字典名稱 b csms t base...

自定義標籤

1 建立沒有標籤體的標籤 1 首先建立乙個jva類,去繼承 tagsupport,下面我們說一下 tagsupport 中的方法的作用 void setjspcontext jspcontext pc 這個方法中的引數就是pagecontext的父類,這個方法是由伺服器最先被呼叫的,然後我們得到我們...