taglib 自定义标签
自定义<%@ taglib prefix="cf" uri="http://training.bmcc.com.cn/tld/functions"%> 就可以根据${cf:proxyConfig('elearning_play')}
实现自定义标签 读取 proxyConfig中的内容,
如果我们使用jsp2,则web.xml使用的是servlet2.4以上的版本。那我们看一下web.xml对应的头文件:
新增的特性是:
<web-app version= "4"
xmlns="http://javasuncom/xml/ns/j2ee"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee
http://javasuncom/xml/ns/j2ee/web-app_2_xsd" >
</web-app>
首先在web.xml中添加如下代码:
<jsp-config>
<taglib>
<taglib-uri>http://training.bmcc.com.cn/tld/functions</taglib-uri>
<taglib-location>/WEB-INF/customfunction.tld</taglib-location>
</taglib>
</jsp-config>
根据上面的
<%@ taglib prefix="cf" uri="http://training.bmcc.com.cn/tld/functions"%>
得到taglib-location 这里得到的是customfunction.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">
<display-name>Custom Functions</display-name>
<tlib-version>1.1</tlib-version>
<short-name>cf</short-name>
<uri>http://training.bmcc.com.cn/tld/functions</uri>
<function>
<name>proxyConfig</name>
<function-class>com.cmbj.training.common.util.ProxyConfigUtil</function-class>
<function-signature>java.lang.String getProxyURL(java.lang.String)</function-signature>
</function>
<function>
<name>popedomCheck</name>
<function-class>com.cmbj.training.common.util.PopedomCheckUtil</function-class>
<function-signature>boolean check(java.util.Map, java.lang.Integer)</function-signature>
</function>
<function>
<name>checkEmployeeJob</name>
<function-class>com.cmbj.training.common.util.UserJobUtil</function-class>
<function-signature>boolean checkEmloyeeJob(java.lang.String)</function-signature>
</function>
<function>
<name>checkManager</name>
<function-class>com.cmbj.training.common.util.UserJobUtil</function-class>
<function-signature>boolean checkManager(java.lang.String)</function-signature>
</function>
<function>
<name>getValByKey</name>
<function-class>com.cmbj.training.common.util.ConstantsMapUtil</function-class>
<function-signature>java.lang.String getValByKey(java.util.Map, java.lang.String)</function-signature>
</function>
<function>
<name>titleFormat</name>
<function-class>common.base.util.StringUtil</function-class>
<function-signature>java.lang.String titleFormat(java.lang.String, java.lang.Integer)</function-signature>
</function>
<function>
<name>titleFormat2</name>
<function-class>common.base.util.StringUtil</function-class>
<function-signature>java.lang.String titleFormat(java.lang.String, java.lang.Integer, java.lang.String)</function-signature>
</function> <function>
<name>checkRoleByName</name>
<function-class>com.bestnet.common.util.RoleUtil</function-class>
<function-signature>boolean checkRoleByName(java.util.Map, java.lang.String)</function-signature>
</function> <function>
<name>checkRoleByCode</name>
<function-class>com.bestnet.common.util.RoleUtil</function-class>
<function-signature>boolean checkRoleByCode(java.util.Map, java.lang.String)</function-signature>
</function>
</taglib>
根据name得到 类路径:
<function-class>com.cmbj.training.common.util.ProxyConfigUtil</function-class>
类内容如下:
public class ProxyConfigUtil { private static ResourceLoadUtil RESOURCE_LOADUTIL = new ResourceLoadUtil("/proxyConfig.properties"); private ProxyConfigUtil() { } public static String getProxyURL(String proxyURLKey, String defaultVal) {
return RESOURCE_LOADUTIL.getVal(proxyURLKey, defaultVal);
} public static String getProxyURL(String proxyURLKey) {
return getProxyURL(proxyURLKey, "");
} public static String getProxyParam(String key){
return RESOURCE_LOADUTIL.getVal(key);
}
最后得到配置文件,读取内容,得到相应的url内容${cf:proxyConfig('elearning_play')}
elearning_play=http\://***.***.***\:8011
最终完成自定义标签的配置。
taglib 自定义标签的更多相关文章
- thinkphp5 taglib自定义标签教程
学着写了一下,终于搞定了,顺便分享一下!taglib是tp框架自定义标签功能,如果你用过cms,肯定见过类似: {dede:arclist typeid='' row='' col='' titlel ...
- ThinkPHP3.2.3 自定义标签库的使用
ThinkPHP 3.2.3 手册中标签库驱动的地址是: http://www.kancloud.cn/manual/thinkphp/1859 标签库的地址是:http://www.kancloud ...
- JSP2.2自定义标签、EL函数
简介 JSTL是一个JSP标准标签库,可以解决大部分问题,但是如果我们需要一些更特殊的功能,就需要自定义类似JSTL中标签的标签.如果EL表达式无法满足我们的需求,我们也可以自定义EL函数. tld后 ...
- [JSP]自定义标签库taglib
自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...
- [Java] JSP笔记 - 自定义标签
自定义标签的创建步骤: 自定义标签的四大功能: 自定义标签的类结构: 在 1.0 中呢, 可以将 <body-content> 的值设置为 JSP, 2.0中则不允许在自定义标签体中出现j ...
- thinkphp自定义标签库
thinkphp ~ php中 的类, 的成员变量, 本身是没有类型说明的, 那么我怎么知道它的类型呢? 或初始值呢? 通常在类定义中, 如果能给一个初始值的(对于已知简单类型的),最好给一个初始值, ...
- 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例
EL应用 自定义一个标签,实现两个字符串的相加 1回顾 1.1servlet生命周期 init(ServletConfig) service ...
- EL函数以及自定义标签的应用
一.EL函数(调用普通类的静态方法) 编写步骤(自定义EL函数的编写步骤即自定义标签的编写步骤): ①编写一个普通的java类,提供一个静态方法,功能自定,例如下: package cn.wzbril ...
- JSTL 自定义标签
编写描述标签的tld文件,把这个文件放到web-inf/目录下,才能在jsp页面上调用自定义的标签 package test.yz; import java.io.IOException; impor ...
随机推荐
- 获取checkbox数组 里面的值
echo '<td class="text-left"><input name="tids[]" type="checkbox&q ...
- mysql的binlog
mysql> show global variables like '%bin%'; +---------------------------------+------------------- ...
- HDU 4050 wolf5x 概率dp 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=4050 题意: 现在主角站在0处,需要到达大于n的位置 主角要进入的格子有三种状态: 0. 不能进入 1. 能进入 ...
- websocket++编译过程
websocket++ 是一个开源 websocket 库,使用websocket++ 能够开发基于websocket 服务. 前一段时间成功编译 websocket++ ,分享一下,编译websoc ...
- C++封装库
1.新建项目 -> Win32项目 选择DLL , 勾选 空项目 , 点击完成. 2.本例程,使用一个CPP文件 , 及一个头文件. 其中头文件包含函数声明,CPP文件实现函数声明. 3. ...
- opencv实现图片缩放
源码 #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/img ...
- 中国广核集团:BPM与ERP紧密结合
全球能源消耗不断增长,电能已经达到了无可替代的位置.同时,传统的电力供应模式正在受新模式的影响,营造更具价值的生态系统.面对挑战,核电企业在提高能效并降低成本的同时,也迫切需要进行转型.面对公众对可再 ...
- iOS中属性Property的常用关键字的使用说明
属性关键字的作用 现在我们iOS开发中,基本都是使用ARC(自动引用计数)技术,来编写我们的代码.因此在属性property中我们经常使用的关键字有strong,weak,assign,copy,no ...
- php获取远程文件大小
获取本地文件大小filesize()就可以了,但是如何获取远程文件的大小呢? 这里介绍三个方法来获取远程文件的大小. 方法1:get_headers <?php get_headers($url ...
- Spring计划会议内容
我们的小组成员是 王伟光,杨世超,苏海岩,曹锦锋,李夏蕾,闫立新. 组长为闫立新. 经过昨天课堂上的讨论,我们确定了未来一周里的工作内容和目标,以及每个人的任务. 我们确定本周的最终目标是实 ...