參考:
呼叫:<@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的父類,這個方法是由伺服器最先被呼叫的,然後我們得到我們...