jfinal模板引擎select等动态标签的封装

直接上代码,我也不知道这个玩法对不对,反正这样玩不用再去查数据字典了,封装的layui的

#--下拉选--#
#define select(name,title,table,code,text,extend,verify,value)
<select name="#(name)" lay-verify="#(verify)" lay-search>
  <option value="">选择#(title)可搜索</option>
  #for(x:xKit.getD(table,code,text,extend))
  <option value="#(xKit.getFirst(x)??)" #if(value==xKit.getFirst(x)) selected #end>#(xKit.getLast(x)??)</option>
  #end
</select> 

下面是工具类xkit
    //查询数据字典
    public static List<String> getD(String table,String code,String text,String extend){
        List<String> l = new ArrayList<String>();
                List<Record> ls = Db.find(Db.getSqlPara("fD", 
                            Kv.by("table", table)
                            .set("text",text)
                            .set("code",code)
                            .set("extend",extend)));
        for (Record record : ls) {
            l.add(record.getStr(code)+","+record.getStr(text));
        }
        return l;
    }
    public static String getFirst(String s){
        return s.split(",")[0];
    }
    public static String getLast(String s){//emptyToNull(String str)
        return s.split(",")[1];
    }
    //下面是用法
    <div class="layui-form-item" pane>
    <label class="layui-form-label">标题</label>
    <div class="layui-input-block">
    #@radio("title","标题","blog","id","title","","required","308892119093739520") 
     #@layuploads("title","标题","required","")  
    </div>
  </div>


评论区

JFinal

2017-05-11 16:56

简化使用,减少代码冗余的封装都是可以的, just do it

liuzy666

2017-05-11 17:20

开始用的ajax,页面渲染太慢了,越来越发现模板引擎的强大之处@JFinal

绝尘

2017-05-11 17:31

select(name,title,table,code,text,extend,verify,value),我个人觉得参数能够少点就好了,把常规的属性值放到define 中默认就好了,
或者你定义一个这样,#define _select() #end 方法,不对外提供此方法
通过简洁的命名来设置一些默认参数(让对外暴露API再简单点),
我觉得这个是你实践中可以注意的

如果太过于复杂的调用API,记忆/学习/使用成本太高了,你不如直接把那个比较复杂的input啥的使用原生的就好了。

爪爪

2017-05-11 18:14

真不错我就没想到这样封装,看到你的之后 我吧我前段有好多东西都封装了

chenmopinglou

2017-05-16 06:52

@爪爪 重新封装之后的能分享出来学习学习吗?

CodeChina

2018-04-19 10:13

能看一下你的sql吗

cs3230524

2019-10-14 17:59

很棒,那接口中的数据字典,你怎么用的?

热门分享

扫码入社