您的位置:首页 > Web前端 > JavaScript

JSP自定义标签

2017-12-06 18:04 218 查看

标签描述文件

引用:

<%@ taglib prefix="my" uri="/WEB-INF/tld/my.tld" %>


示例:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version><!-- 代表标签库的版本号 -->
<jsp-version>2.0</jsp-version><!-- 代表jsp的版本 -->
<short-name>my</short-name><!-- 你的标签库的简称 -->
<uri>http://my.com</uri><!-- 你标签库的引用uri -->

<tag>
<name>simple</name><!-- 你定义的标签的名称 -->
<tag-class>com.fyp.test.demo.web.tag.MySimpleTag</tag-class><!-- 对应的标签处理程序:包名+类名 -->
<body-content>empty</body-content><!-- 标签体内容的格式 -->
<attribute>
<name>param</name>
<required>true</required>
<type>java.lang.String</type>
</attribute>
</tag>
</taglib>


body-content说明:

tagdependent:指定标签处理类自己负责处理标签体。

empty:指定该标签只能作用空标签使用。

scriptless:指定该标签的标签体可以是静态 HTML 元素,表达式语言,但不允许出现 JSP 脚本(这种是最常用的,不能出现的是jsp脚本,但是EL表达式和其他标签是可以用的)。

JSP:指定该标签的标签体可以使用 JSP 脚本。

attribute标签的rtexprvalue属性要注意下,这个属性置为true,参数才能接收EL表达式。

自定义标签开发

依赖:

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>


java简单例子:

public class MySimpleTag extends SimpleTagSupport {

private String param;

public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("Hello world! The param=" + param);
}

public String getParam() {
return param;
}

public void setParam(String param) {
this.param = param;
}

}


jsp简单例子:

<%@ taglib prefix="my" uri="/WEB-INF/tld/my.tld" %>

...

<my:simple param="123"/>


如果要带标签体,需要在描述文件里指定:

<body-content>scriptless</body-content>


java带标签体的例子:

public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("<br>我是前缀,param=" + param + "<hr>");
getJspBody().invoke(null);
out.println("<br>我是后缀,param=" + param + "<hr>");
}


jsp带标签体的例子:

<my:simple param="123">
我是页面内容
</my:simple>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp 标签 tag