java 自定义标签
2014-10-10 16:32
127 查看
自定义标签 :比如相同的界面在多个页面都有用到,不想在jsp页面一份一份粘的话,就考虑用自定义标签吧
创建步骤:
(1) 标签处理器——java类,实现Tag接口或者TagSupport接口;
(2) 编写.tld文件:
<taglib>
<!-- 标签库的版本号 -->
<tlibversion>1.0</tlibversion>
<!-- 标签库的默认前缀 -->
<shortname>common</shortname>
<!-- Dist Tag -->
<tag>
<name>dist</name>
<tagclass>daqing.web.util.tld.DistTag</tagclass>
<bodycontent>empty</bodycontent>
<!-- 可以使用JSP表达式 -->
<rtexprvalue>true</rtexprvalue>
</tag>
</taglib>
(3)在jsp文件调用tld文件
举例:
java类
public class DistTag extends TagSupport{
private static final long serialVersionUID = -9080613694055881781L;
private static Logger log = Logger.getLogger(DistTag.class);
public int doEndTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
StringBuffer sb = new StringBuffer();
List menucolumns = (List) request.getAttribute("menuColumns");
if(menucolumns != null && menucolumns.size() >0){
sb.append("<div id='menucolumn'><ul class='sf-menu' id='menuCols'>");
for(int i=0;i<menucolumns.size();i++){
MenuColumn c = (MenuColumn) menucolumns.get(i);
sb.append("<li id=\""+ c.getColumnId()+"\"><a href=\"#\">"+c.getColumnName()+"</a>");
List childColumns=c.getChildColumns();
if(childColumns != null && childColumns.size() >0){
sb.append("<ul class=\"sub_column\">");
for(int j=0;j<childColumns.size();j++){
MenuColumn cc = (MenuColumn) childColumns.get(j);
sb.append("<li id=\""+ cc.getColumnId()+"\"><a href=\"#\">"+cc.getColumnName()+"</a></li>");
}
sb.append("</ul>");
}
}
sb.append("</li></ul></div>");
}
try {
pageContext.getOut().print(sb.toString());
} catch (Exception e) {
log.error(e);
}
return EVAL_PAGE;
}
}
tld文件
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>common</shortname>
<tag>
<name>dist</name>
<tagclass>daqing.web.util.tld.DistTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
jsp页面
<%@ taglib uri="/tags/common" prefix="common"%>
<common:dist />
创建步骤:
(1) 标签处理器——java类,实现Tag接口或者TagSupport接口;
(2) 编写.tld文件:
<taglib>
<!-- 标签库的版本号 -->
<tlibversion>1.0</tlibversion>
<!-- 标签库的默认前缀 -->
<shortname>common</shortname>
<!-- Dist Tag -->
<tag>
<name>dist</name>
<tagclass>daqing.web.util.tld.DistTag</tagclass>
<bodycontent>empty</bodycontent>
<!-- 可以使用JSP表达式 -->
<rtexprvalue>true</rtexprvalue>
</tag>
</taglib>
(3)在jsp文件调用tld文件
举例:
java类
public class DistTag extends TagSupport{
private static final long serialVersionUID = -9080613694055881781L;
private static Logger log = Logger.getLogger(DistTag.class);
public int doEndTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
StringBuffer sb = new StringBuffer();
List menucolumns = (List) request.getAttribute("menuColumns");
if(menucolumns != null && menucolumns.size() >0){
sb.append("<div id='menucolumn'><ul class='sf-menu' id='menuCols'>");
for(int i=0;i<menucolumns.size();i++){
MenuColumn c = (MenuColumn) menucolumns.get(i);
sb.append("<li id=\""+ c.getColumnId()+"\"><a href=\"#\">"+c.getColumnName()+"</a>");
List childColumns=c.getChildColumns();
if(childColumns != null && childColumns.size() >0){
sb.append("<ul class=\"sub_column\">");
for(int j=0;j<childColumns.size();j++){
MenuColumn cc = (MenuColumn) childColumns.get(j);
sb.append("<li id=\""+ cc.getColumnId()+"\"><a href=\"#\">"+cc.getColumnName()+"</a></li>");
}
sb.append("</ul>");
}
}
sb.append("</li></ul></div>");
}
try {
pageContext.getOut().print(sb.toString());
} catch (Exception e) {
log.error(e);
}
return EVAL_PAGE;
}
}
tld文件
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>common</shortname>
<tag>
<name>dist</name>
<tagclass>daqing.web.util.tld.DistTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
jsp页面
<%@ taglib uri="/tags/common" prefix="common"%>
<common:dist />
相关文章推荐
- jsp使用自定义标签taglib分页系列——ColumndeleteTag.java
- jsp使用自定义标签taglib分页系列——TableBase.java
- java 自定义标签示例
- java 自定义标签(二)
- Java中自定义标签的使用
- Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
- java自定义标签
- java自定义标签
- java 自定义标签(一)
- jsp使用自定义标签taglib分页系列——TableTag.java
- jsp使用自定义标签taglib分页系列——DrilldownTag.java
- jsp使用自定义标签taglib分页系列——ColumntextTag.java
- 再谈java自定义标签
- jsp使用自定义标签taglib分页系列——ColumntextTag.java
- jsp使用自定义标签taglib分页系列——TRTag.java
- jsp使用自定义标签taglib分页系列——ContentBase.java
- jsp使用自定义标签taglib分页系列——ColumneditTag.java
- 使用自定义标签实现JSP页面和Java代码分离
- Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
- 11 java 王少飞-自定义标签