java自定义标签
三步:
一、自定义标签实现类: myTags.java;
二、自定义标签库文件(TLD): myTags.tld;
三、一个JSP页面:随便写了;
首先myTags.java
package com.tags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class myTags extends TagSupport {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int doEndTag() throws JspException {
JspWriter out = pageContext.getOut();//得到out
try{
out.println("<table bgColor=yellow>");
out.println("<tr>");
out.println("<td>"+ name +" : this is myTags!!</td>");
out.println("</tr>");
out.println("</table>");
}catch(Exception ex){ex.printStackTrace();}
return this.EVAL_PAGE;
}
}
然后myTags.tld文件,在web-inf文件夹下生成,也可看做一个XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib> <!-- 标签库定义文件根节点:taglib -->
<tlibversion>1.2</tlibversion> <!-- 标签库版本 -->
<jspversion>1.1</jspversion> <!-- Jsp版本 -->
<shortname>mytags</shortname> <!-- 标签库名称 -->
<uri>mytags</uri> <!-- uri:很重要!外界导入标签库时认识的名称 -->
<!-- 定义标签 -->
<tag>
<name>showTable</name> <!-- 标签名称 -->
<tagclass>com.tags.myTags</tagclass> <!-- 对应的类 -->
<attribute>
<name>name</name>
<required>true</required> <!-- 是否必需 -->
<rtexprvalue>true</rtexprvalue> <!-- 能否接受表达式 -->
</attribute>
</tag>
</taglib>
最后,来一个页面吧
<%@
相关文档:
使用java中的动态代理可以完成很多事情,比如将业务实例进行托管,实现AOP等,但是Php中没有实现这样的东西,昨天突然想到其实可以通过eval来模拟一个动态代理机制。php比java不同的是,php是不需要编译的,因此只要我们能够动态生成一段代码,然后用eval来执行就可以达到效果。代码如下:
/**
* 代理实现类
*/
inter ......
annotations : 注释
好处
1.文档编制
2.编译器检查
3.代码分析
JSR 175 是编程语言的元数据工具,为将元数据合并到核心java语言中提供正式理由和说明
基本知识:
注释采用"@"标记形式,后面是注释名称,然后在需要数据时,通过name=value对向注释提供数据
注释的三个基本种类:
标记注释 ......
优先级
运算符
名称
1
( )
括号
2
[ ] , 。
后缀运算符
3
- (一元运算符,取负数) , ! , ~ , ++ , --
一元运算符
4
* , / , %
乘,除,取模
5
+, -
加,减
6
>> , << , >>>
移位运算符
7
> , < , >= , <= , instanceof
关系运算符
8
==,!=
等于,不等于
9
......