标签:ted oca myeclips 结构 tran attr base exception err
礼悟:
好好学习合思考,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼强身心,诚劝且行且珍惜。
javaEE:7
javaSE:1.8
JSTL:1.2.2
server:tomcat 8.5
browser:Chrome/Firefox
os:windows7 x64
ide:MyEclipse 2017
项目结构

jizuiku-tags.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>jzk</short-name>
<uri>http://www.jizuiku.com/tags/1.0</uri>
<!-- 配置标签 -->
<tag>
<name>MyTag</name><!-- 指定当前标签的名称 -->
<tag-class>com.jizuiku.tag.MyTag</tag-class><!-- 当前标签的处理类 -->
<body-content>scriptless</body-content><!-- 指定标签体的类型 EL表达式 -->
<!-- 部署属性 -->
<attribute>
<name>value</name>
<required>true</required> <!-- 是必须要给的属性 -->
<rtexprvalue>true</rtexprvalue><!-- rt:runtime expr:expression value:value -->
<!-- 属性赋值可以是EL表达式 -->
</attribute>
</tag>
</taglib>
MyTag.java
package com.jizuiku.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
*
*
* @author 博客园-给最苦
* @version V2017.12.04
*/
public class MyTag extends SimpleTagSupport {
private boolean value = false;
/*
* 在doTag之前被tomcat调用
* getXxx就不用写了,请问为什么?
*
*/
public void setValue(boolean value) {
this.value = value;
}
@Override
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
if (value) {
// 执行标签体,参数是null 指的是 输出流是当前页面的out
this.getJspBody().invoke(null);
this.getJspContext().getOut().print("居然是真");
} else {
// 执行标签体,参数是null 指的是 输出流是当前页面的out
this.getJspBody().invoke(null);
this.getJspContext().getOut().print("居然是假");
}
}
}
MyJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="j" uri="/WEB-INF/tlds/jizuiku-tags.tld"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP ‘MyJsp.jsp‘ starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<!-- 给最苦 没有起好名字,完全不能见名知意呀!!! -->
<j:MyTag value="${empty param.name }">
呵呵,这里必须要写一些内容。否则就会抛出空指针异常<br>
</j:MyTag>
</body>
</html>
浏览器查看

学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
JSTL基础 SimpleTagSupport 自定义标签 带有属性
标签:ted oca myeclips 结构 tran attr base exception err
原文地址:http://www.cnblogs.com/jizuiku/p/7994030.html