jsp中自定义标签的学习
来源:互联网 发布:js数据类型转换 编辑:程序博客网 时间:2024/05/21 10:25
自定义标签概述
在web界面中我们使用了jstl标签
这个jstl标签就是开发javaEE的人员暗转jsp页面上最常用的一些逻辑操作
设计开发的标签,运行时也会翻译成java代码
那么我们也可以自己开发自己需要的页面标签
自定义标签实现
要实现自定义标签,让我们先来了解一下标签的分类,然后再来一一实现自定义标签。
1单标签
<br/>
2有内容的标签
<p></p>
3有参数还有内容的标签
<a href="xxxx">yyyyy</a>
在web工程下web下的WEV-INF文件夹下新建一个后缀为.tld的文件里面内容如下
<?xml version="1.0" encoding="UTF-8"?><taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee" version="2.1"> <description>myFirstTag</description> <display-name>testTag</display-name> <tlib-version>1.0</tlib-version> <short-name>Tag</short-name> <uri>http://testTag/hello</uri> <tag> <name>hello</name> <tag-class>tag.HelloTag</tag-class> <body-content>empty</body-content> </tag></taglib>
里面就是一些标签描述,我解释下重要的几个。。。
<uri>http://testTag/hello</uri>
注意这个,后面会用到,这里就是相当于一个命名空间的一个什么东西吧,我也不是很明白,希望一起讨论学习。
<body-content>empty</body-content>
这里表示写的是一个单标签,接下来看一下另外一种自定义标签
<tag> <name>bigRed</name> <tag-class>tag.RedTag</tag-class> <body-content>jsp</body-content> </tag>
RedTag是那个类,继续BodyTagSupport 。重写doAfterBody()方法
public class RedTag extends BodyTagSupport { @Override public int doAfterBody() throws JspException { //获得标签中的文本内容 BodyContent bc=this.getBodyContent(); //获得网页中标签的内容 String content=bc.getString(); //获得对象往网页的输出流 JspWriter out=bc.getEnclosingWriter(); try { out.print("<span style='color:red;font-weight:bold'>"+content+"</span>"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return this.EVAL_PAGE; //return super.doAfterBody(); }}
然后再jsp中这样引用
<tag:bigRed >您的用户名密码错误</tag:bigRed>
ok.success
接下来就是有内容有内容还有参数的标签了
<tag> <name>add</name> <tag-class>tag.AddTag</tag-class> <body-content>empty</body-content> <attribute> <name>num1</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>num2</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag>
是否支持el表达式
<rtexprvalue>true</rtexprvalue>
看这个AddTag类,继承TagSupport
public class AddTag extends TagSupport { private int num1; private int num2; public int getNum1() { return num1; } public void setNum1(int num1) { this.num1 = num1; } public int getNum2() { return num2; } public void setNum2(int num2) { this.num2 = num2; } @Override public int doStartTag() throws JspException { // TODO Auto-generated method stub // 获得页面上下文 JspContext jc = this.pageContext; // 获得输出流 JspWriter out = jc.getOut(); try { out.print(num1+num2); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return EVAL_PAGE; }}
看到45了吧!
0 0
- jsp中自定义标签的学习
- 自定义jsp标签的学习
- jsp自定义标签的学习
- jsp 自定义标签 学习
- jsp自定义标签学习
- JSP中自定义标签
- Jsp中自定义标签
- jsp中自定义标签
- 关于jsp自定义标签的学习
- jsp中自定义标签的使用
- JSP中自定义标签的简单应用
- jsp中自定义标签的执行过程
- JSP的自定义标签
- JSP的自定义标签
- jsp的自定义标签
- jsp的自定义标签
- jsp的自定义标签
- JSP自定义标签学习(基础)
- C# 发布windows 服务
- 登录工程二:现代 Web 应用的典型身份验证需求
- elasticsearch笔记_索引文档时的集群内部操作(二)
- 树与二叉树的转换、树的遍历
- SQLiteDatabase填充spinner(populating spinner from SQLiteDatabase)
- jsp中自定义标签的学习
- 【C#】wpf中的xmlns命名空间为什么是一个网址,代表了什么意思
- 1064. 朋友数
- [FFT] 快速傅里叶变换学习笔记
- NOIP2013 Day1
- Nginx配置反向代理安装和配置-初探
- 【数据结构-堆排序】堆排序 Heap Sort
- android SQLite数据的使用
- videoView播放视频,简易视频播放器自己写