关于jeesite字典表的实现,el自定义方法tld

用jeesite搭建项目发现字典表非常好用,速度的转义很快,看了下代码,简单的解释下,发现是是使用了el自定义方法tld
1:在jsp的获取方式${fns:getDictList('yes_no')}
 
* “是”代表此账号允许登录,“否”则表示此账号不允许登录


2:使用fns:要引入fns,用到el 自定义方法 tld
<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
3:其实uri中写了fns.tld文件的位置,这个文件中有该方法的自定义函数
fns.tld文件,


  JSTL 1.1 functions library
  JSTL functions sys
  1.1
  fns
  http://java.sun.com/jsp/jstl/functionss
  
    获取字典对象列表
    getDictList
    com.thinkgem.jeesite.modules.sys.utils.DictUtils
    java.util.List getDictList(java.lang.String)
    ${fns:getDictList(type)}  
  
写在写了class类写了类里面对应的方法
4.后台写对应的类及方法:特别注意一定为静态方法
public class DictUtils {
    private static DictDao dictDao = SpringContextHolder.getBean(DictDao.class);
    public static final String CACHE_DICT_MAP = "dictMap";
    public static List getDictList(String type){
        @SuppressWarnings("unchecked")
        Map> dictMap = (Map>)CacheUtils.get(CACHE_DICT_MAP);
        if (dictMap==null){
            dictMap = Maps.newHashMap();
            for (Dict dict : dictDao.findAllList(new Dict())){
                List dictList = dictMap.get(dict.getType());
                if (dictList != null){
                    dictList.add(dict);
                }else{
                    dictMap.put(dict.getType(), Lists.newArrayList(dict));
                }
            }
            CacheUtils.put(CACHE_DICT_MAP, dictMap);
        }
        List dictList = dictMap.get(type);
        if (dictList == null){
            dictList = Lists.newArrayList();
        }
        return dictList;
    }
}
也会发现使用了缓存,大大提高转换效率






你可能感兴趣的:(Java)