之前例子已经写好了,由于时间关系一直没有发布,这次带来的是关于taglib中的<tag>的基本功能已经介绍完毕了,在taglib中我们发现有一个标签叫做<function>,这次简单介绍<function>标签的基本用法,<function>标签可以做什么呢?它可以让我们在jsp用直接调用某个方法,根据自定义的方法返回指定的值,兼容jstl标签,省去了在jsp中直接使用<%!%>来定义方法体再调用的繁琐.如果你用过el语言的话估计会很快上手,其实<function>标签就是一个拥有方法体的el语言.注意:function所定义的方法必须需要是静态的,如果不是静态的话jstl是不能识别所定义的方法.
Java代码如下:
package org.lxh.taglib; import java.util.List; public class FunctionTag { public static String hello(String name) { return name; } public static Integer bbq(List list) { return list.size(); } }
方法必须静态,可以定义有返回值或者void类型的方法.
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"> <tlib-version>1.0</tlib-version> <short-name>my</short-name> <uri>http://lauedward.spaces.live.com</uri> <function> <!--EL页面调用名字--> <name>hello</name> <!--指定标签的处理类,指定了标签由哪个Java类来处理。--> <function-class>org.lxh.taglib.FunctionTag</function-class> <!--指定EL页面调用名字中实际调用的方法.指定处理类的实际方法.参数和回调函数要写完整路径--> <function-signature>java.lang.String hello(java.lang.String)</function-signature> </function> <function> <name>bbq</name> <function-class>org.lxh.taglib.FunctionTag</function-class> <function-signature>java.lang.Integer bbq(java.util.List)</function-signature> </function> </taglib>
注意:在<function-signature>需要写完整的类名,假如是String类型的话就必须写java.lang.String这样字,不支持泛型的定义如java.util.List<java.lang.String>eclipse会把<>当作xml的格式来判断的,所以就省略该泛型的定义.
jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="my" uri="/WEB-INF/tld/testFunction.tld"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.*"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
request.setAttribute("list", "helloword");
request.setAttribute("name", list);
Map map = new HashMap();
map.put("1","a");
map.put("2","b");
map.put("3","c");
map.put("4","d");
%>
<br>
${my:hello(list)}
<br>
${my:bbq(name)}
<br>
</body>
</html>
注意:调用方法的时候必须类型要传入相同类型的值,否则的话会报错,不过对于方法体是String的话,是可以传入list,set,map那些,因为传入后会直接调用list的.toString()方法直接当字符串输出.
相关推荐
jsp使用自定义标签taglib分页系列——完整例子
NULL 博文链接:https://wujie2008.iteye.com/blog/1694631
使用jsp自定义标签的功能实现权限的控制。(如果用户没有某个模块的删除权限,就不现实这个删除按钮) 在整个项目中所有的页面都可以引入自定义的标签去做到权限的控制。 <%@ taglib uri="/priveliege" prefix=...
讲述Taglib 自定义标签
一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发...
Taglib自定义标签.doc
feilong-taglib,是 JSP常用自定义标签集 主要由两部分组成 Common 包含所有自定义标签的base类,以及常用的自定义标签 和el function taglib 说明 isContains 判断一个值,...
一、自定义标签入门之无参数自定义标签 1.开发自定义标签类 当我们在JSP页面使用一个简单的标签时,底层实际上由标签处理类提供支持,从而可以使用简单的标签来封装复杂的功能,从而使团队更好地协作开发(能让美工...
SSHConformity【display标签和taglib标签】,display标签,pager-taglib标签
idea需要的taglib标签库包,idea没有自带的taglib标签库,需要手动导入taglib包,并且配置对应的路径,进入“settings”设置选项,然后搜“DTD”然后如下图,在左边的标签选项卡找到“Schemas and DTDS” ,在url的...
带有参数的自定义标签,比较简单的哦
一个完整的工程,放到tomcat里就可以用了,很好用,采用自定义标签实现分页
jsp自定义标签,比如说if,foreach,out,format
这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。 代码如下:<%@ taglib prefix =”bean” uri= “http://struts.apache.org/tags-bean” %> <%@ taglib
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...
Struts2中实现自定义标签很简单,主要分为3步: 1.创建taglib文件(.tld),编写标签声明。 2.编写自定义标签类。 3.在页面中使用标签。 下面以一个自定义的分页标签为例,进行说明。 其实,开发自定义标签并不...
SSHConformity【display标签和taglib标签缺架包】,ssh整合,分页,display标签,pager-taglib标签
自定义标签实现分页,分页信息都封装在一个继承自TagSupport的java文件中,自定义一个tld文件,jsp页面通过taglib指令引入tld文件,使用自定义标签。
资源内容:java自定义标签开发;JSP页面中自定义标签详解教程;JSP自定义标签简介;taglib_原理和实现;更多场景的示例Demo;