原理分析 将标签与类之间的对应关系(如'app_init'=>array('Common\Behavior\InitHook')),通过Hook类中import或add方法,加载到Hook类中静态变量$tags中.当执行Hook中静态方法listen或者exec方法的时候(listen方法中调用了exec),实例化标签对应的类,调用相应的方法(如果是插件,调用传递的方法,如果是行为,调用run方法). Hook中exec方法定义如下: static public function exec($n…
如何自定义JSTL标签 1.创建一个类,从SimpleTagSupport继承 A) 通过继承可以获得当前JSP页面上的对象,如JspContext I) 实际上可以强转为PageContext II) 通过PageContext可以拿到HttpServletRequest等对象 B) 通过JspContext可以获取输出流,向页面上输出内容(文字/HTML标签) C) 重写doTage()方法实现标签的内部逻辑 2.在tld(标签库描述)文件中添加<tag>标签 A) 如果tld还没有,则从…