目录
案列思路
---------------------------------------------------------实际操作------------------------------------------------------------
1.标签语言的特点
了解标签结构
<c:if test="true"> 开始标签
true 标签提
</c:if> 结束标签
标签分类:控制标签,数据标签,UI标签
没有标签体也能在网页中输出内容的标签,为UI标签
<c:if test="true">true</c:if>
<c:if test="false">false</c:if>
<c:set var="name" value="HZ"></c:set>
<c:out value="${name }"></c:out>
-------------------------------------------------------------------------------------------------------------------------------
2.自定义标签的使用步骤
1.自定义标签库是与tld文件相关的
2.标签库中的标签与tld中的元素有关,也就是跟tag元素的助手类有关
<h:if test="true">true</h:if>
<h:if test="false">false</h:if>
<h:set var="name" value="HZ"></h:set>
<h:out value="${name }"></h:out>
-------------------------------------------------------------------------------------------------------------------------------
3.JSP标签生命周期图
1.助手类
package com.hz.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
/**
* 助手类 必须继承bodytagSupport
* @author Administrator
*
*/
public class DemoTag1 extends BodyTagSupport{
@Override
public int doStartTag() throws JspException {
System.out.println("========doStartTag========");
return EVAL_BODY_INCLUDE;
}
@Override
public int doAfterBody() throws JspException {
System.out.println("=======doAfterBody=======");
return super.doAfterBody();
// return EVAL_BODY_AGAIN;
}
@Override
public int doEndTag() throws JspException {
System.out.println("==========doEndTag=========");
return super.doEndTag();
// return SKIP_PAGE;
}
}
-------------------------------------------------------------------------------------------------------------------------------
4.JSP标签实践
package com.hz.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
/**
* servlet中后台代码前台输出内容 out.print
* 将数据输出到前台,首先拿到输出流
* @author Administrator
*
*/
public class OutTag extends BodyTagSupport{
private Object value;
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
@Override
public int doStartTag() throws JspException {
JspWriter out=pageContext.getOut();
try {
out.print(value);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return super.doStartTag();
}
}
package com.hz.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
/**
* 数据标签,存储数据的
* 使用,pagecontext,request,session,applocation(servletContext)
*
* 要存储数据,以健值对的方式进行存储,分析得来该标签有2个属性
* @author Administrator
*
*/
public class SetTag extends BodyTagSupport{
private String var;
private Object value;
public String getVar() {
return var;
}
public void setVar(String var) {
this.var = var;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
@Override
public int doStartTag() throws JspException {
// * 要存储数据,以健值对的方式进行存储,分析得来该标签有2个属性
pageContext.setAttribute(var, value);
return super.doStartTag();
}
}
-------------------------------------------------------------------------------------------------------------------------------
5.增删改查案列
1.主界面邦值servlet和index.jsp
servlet
package com.Hz.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.