heardyTag.tld
1.0
1.1
page
hello
heardy.MyTag
JSP
maxlength
false
true
MyTag.java
package heardy;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.TagSupport;
public class MyTag extends BodyTagSupport {
/**
*
*/
private static final long serialVersionUID = 167634601069545267L;
private String maxlength = "10";
private String info;
public String getMaxlength() {
return maxlength;
}
public void setMaxlength(String maxlength) {
this.maxlength = maxlength;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public int doEndTag() throws JspException {
JspWriter out = pageContext.getOut(); // pageContext对象以被容器初始化
try {
out.print(getInfo());
} catch (IOException e) {
e.printStackTrace();
}
return TagSupport.EVAL_PAGE; // 继续处理其他页面内容
}
@Override
public int doStartTag() throws JspException {
try {
pageContext.getOut().print("");
} catch (IOException e) {
e.printStackTrace();
}
return TagSupport.EVAL_BODY_AGAIN; // 标签开始要处理标签对中内容
}
@Override
public int doAfterBody() throws JspException {
if (bodyContent.getString().length() > Integer.parseInt(getMaxlength()
.trim()))
setInfo("
+ bodyContent.getString()
+ "/">"
+ bodyContent.getString().substring(0,
Integer.parseInt(getMaxlength().trim())) + "...
else {
setInfo("
}
return TagSupport.SKIP_BODY;
}
}
index.jsp
My JSP 'index' starting pageafter
afterafterafterafterafter
这个比较长需要截取
af
可以不指定maxlength长度 默认是10