关于jeesite字典表的实现,el自定义方法tld
2017-04-10 11:02
1256 查看
用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文件,
写在<function>中<function-class>写了class类<function-signature>写了类里面对应的方法
4.后台写对应的类及方法:特别注意一定为静态方法
1:在jsp的获取方式${fns:getDictList('yes_no')}
<div class="control-group"> <label class="control-label">是否允许登录:</label> <div class="controls"> <form:select path="loginFlag"> <form:options items="${fns:getDictList('yes_no')}" itemLabel="label" itemValue="value" htmlEscape="false"/> </form:select> <span class="help-inline"><font color="red">*</font> “是”代表此账号允许登录,“否”则表示此账号不允许登录</span> </div> </div>
2:使用fns:要引入fns,用到el 自定义方法 tld
<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
3:其实uri中写了fns.tld文件的位置,这个文件中有该方法的自定义函数
fns.tld文件,
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>JSTL 1.1 functions library</description> <display-name>JSTL functions sys</display-name> <tlib-version>1.1</tlib-version> <short-name>fns</short-name> <uri>http://java.sun.com/jsp/jstl/functionss</uri> <function> <description>获取字典对象列表</description> <name>getDictList</name> <function-class>com.thinkgem.jeesite.modules.sys.utils.DictUtils</function-class> <function-signature>java.util.List getDictList(java.lang.String)</function-signature> <example>${fns:getDictList(type)}</example> </function> </taglib>
写在<function>中<function-class>写了class类<function-signature>写了类里面对应的方法
4.后台写对应的类及方法:特别注意一定为静态方法
public class DictUtils { private static DictDao dictDao = SpringContextHolder.getBean(DictDao.class); public static final String CACHE_DICT_MAP = "dictMap"; public static List<Dict> getDictList(String type){ @SuppressWarnings("unchecked") Map<String, List<Dict>> dictMap = (Map<String, List<Dict>>)CacheUtils.get(CACHE_DICT_MAP); if (dictMap==null){ dictMap = Maps.newHashMap(); for (Dict dict : dictDao.findAllList(new Dict())){ List<Dict> 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<Dict> dictList = dictMap.get(type); if (dictList == null){ dictList = Lists.newArrayList(); } return dictList; } }也会发现使用了缓存,大大提高转换效率
相关文章推荐
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明
- jsp 学习 第3步 - el 自定义方法 tld 说明
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明。
- 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明。
- IOS 中关于自定义Cell 上的按钮 开关等点击事件的实现方法(代理)
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明
- 关于VC++中,两种自定义消息的发送与接收的方法实现进行说明。
- jsp el 自定义方法 tld 说明
- 关于web中下拉列表的几种实现方法
- 关于利用Acronis Snap Deploy实现网刻的方法
- 关于spring 2.0自定义xml 标记 (二 如何实现)
- 自定义reportviewer打印设置按钮的另类实现方法
- fck_editor 不采用正则表达式实现插入任意自定义图片标签的解决方法
- 关于"多级目录(分类)"的一些想法 ----- 实现方法
- 关于行列转置的实现方法
- 【续】用ObjectDataSource实现自定义分页的心得总结,几种分页方法的性能对比
- 关于javascript调用C#方法的变通实现
- VS2005下自定义用户控件 如何实现属性及方法的相关智能提示