jsp自定义嵌套标签
1.定义标签实现类
ParentTag.java
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class ParentTag extends TagSupport {
private static final long serialVersionUID = 1L;
private Map<String,String> map = new HashMap<String,String>();
//标签属性id
private String id ;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
//该方法在子标签中调用,给父标签中的map赋值
public void addValue(String key,String value){
map.put(key,value);
}
/**
* doStartTag()方法返回一个整数值,用来决定程序的后续流程。
* A.Tag.SKIP_BODY:表示标签之间的内容被忽略
* B.Tag.EVAL_BODY_INCLUDE:表示标签之间的内容被正常执行
*/
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
try {
Set<String> keySet = map.keySet();
Iterator<String> it = keySet.iterator();
while(it.hasNext()){
String key = it.next();
String value = map.get(key);
out.write(key +": <input type='text' name="+key+" value="+value+" /><br>");
}
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_BODY_INCLUDE;
}
/**
* doEndTag:当JSP容器遇到自定义标签的结束标志,就会调用doEndTag()方法。doEndTag()方法也返回一个整数值,用来决定程序后续流程。
* A.Tag.SKIP_PAGE:表示立刻停止执行网页,网页上未处理的静态内容和JSP程序均被忽略任何已有的输出内容立刻返回到客户的浏览器上。
* B.Tag.EVAL_PAGE:表示按照正常的流程继续执行JSP网页
*/
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
}
ChildTag.java
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class ChildTag extends TagSupport {
private static final long
相关文档:
一个项目中会在多个JSP界面中使用下拉框,日期控件,分页控件。若能将此类控件抽象出来,做成一个JspTag的话,那使用起来就方便多了。同时便于JSP的阅读,更主要的是方便了项目的管理与维护。
下面以行业下拉框控件为例介绍自定义JspTag,尤其注意红色标注处,从对应关系可以找到运用规律:
首先建立/WEB-INF/tags/my-t ......
servlet--------------------------------------------JSP
HttpServletRequest request
HttpServletResponse &nbs ......
1.首先在jsp页面中生成验证码图片,image.jsp
<%@ page contentType="image/jpeg"%>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
......
什么是自定义标签?
1,用户自定义的Java语言元素, 实质是运行一个或者两个接口的JavaBean;
2,可以非常紧密地和JSP的表示逻辑联系在一起,又具有和普通JavaBean相同的业务逻辑处理能力;
3,当一个JSP页面转变为servlet时,其间的用户自定义标签转化为操作一个称为标签hander的对象;
4,可操作默认对象,处理表单数据, ......