1.JSP可以使用标签 自定义函数
1.自己描述一个类
2.类中描述自己的方法
方法必须是静态的
方法通常有返回值
3.配置一个”说明书”——->xxx.tld
当前工程下web文件夹中的WEB-INF文件夹下创建一个新的xx.tld文件
1.先描述两个重要的东西 uri short-name
4.在JSP中声明头信息
<%@ taglib uri=”” prefix=””%>
${myFn:add()}
自定义函数:一个类就可以存储多个函数,即函数就是方法。
2.JSP可以使用标签 自定义标签
每一个标签都是一个单独的类
1.创建一个类(用来描述一个标签)
实现一个Tag接口 重写里面的方法
2.细致的看一下这些方法
两组对应的get/set 自己补全 并添加响应的私有属性
还有一个单独的release方法 回收对象
doStartTag
doEndTag
3.在两个方法内添加自己的逻辑
4.描述一个”说明书” tld
先描述uri和short-name
再描述标签及标签内部的属性
5.创建JSP 声明头信息
自定义标签:一个类只能存一个标签。
public class MyOut implements Tag {
//<c:out value="值"><br /> // body<br /> //</c:out><br /> // page
private String value;<br /> public String getValue() {<br /> return value;<br /> }<br /> public void setValue(String value) {<br /> this.value = value;<br /> }
public int doStartTag() throws JspException {<br /> return Tag.EVAL_BODY_INCLUDE;<br /> //return Tag.SKIP_BODY;<br /> }<br /> public int doEndTag() throws JspException {<br /> try {<br /> //可以获取out对象<br /> JspWriter out = this.pageContext.getOut();<br /> out.write(value+" 很帅!!!");<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br /> return Tag.EVAL_PAGE;<br /> //return Tag.SKIP_PAGE;<br /> }
//============================================<br /> private Tag parent;<br /> public void setParent(Tag parent) {<br /> this.parent = parent;<br /> }<br /> public Tag getParent() {<br /> return this.parent;<br /> }
private PageContext pageContext;<br /> public void setPageContext(PageContext pageContext) {<br /> this.pageContext = pageContext;<br /> }<br /> public PageContext getPageContext(){<br /> return this.pageContext;<br /> }
public void release(){}<br />}