现在的位置: 首页 > 综合 > 正文

jsp自定义标签新手使用

2018年04月28日 ⁄ 综合 ⁄ 共 2400字 ⁄ 字号 评论关闭

1,web.xml配置:

        ....

          <jsp-config>
              <!-- 商城信息的标签-->

              <taglib>      
                  <taglib-uri>/mallListuri</taglib-uri>
                  <taglib-location>/WEB-INF/tlds/mallListTag.tld</taglib-location>
              </taglib>

          </jsp-config>

        ....

 

2,在/WEB-INF/tlds/路径下,新建TLD文件,格式如下:

       <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
 <tlib-version>1.0</tlib-version>
 <short-name>mallSearchTag</short-name>
 <uri>/WEB-INF/tlds/mallSearchTag</uri>
 <!-- 商城搜索 -->
 <tag>
       <!-- 定义标签名 -->
       <name>mallSearch</name>
       <!-- 定义标签处理类 -->
       <tag-class>com.esigma.fan.tags.MallSearchTag</tag-class>
       <!-- 定义标签体支持JSP脚本 -->
       <body-content>scriptless</body-content>
       <!-- 配置标签属性:keyWords -->
       <attribute>
              <name>keyWords</name>
              <fragment>true</fragment>
              <rtexprvalue>true</rtexprvalue> <!--  属性值是否可以为request-time表达式,也就是类似于< %=…% >的表达式  -->
       </attribute>

 

       <attribute>
               <name>items</name>
              <required>true</required>    <!--  属性是否必需的,默认为false -->
              <fragment>true</fragment>  <!-- 设置该属性是否支持 JSP 脚本、表达式等动态内容,子元素的值是 true 或 false。-->
       </attribute>

      .........

     ...........

</tag>
</taglib>

           

 

3,自定义标签处理类,MallSearchTag:

public class MallSearchTag extends SimpleTagSupport {

           .........

           public void doTag() throws JspException, IOException {

                     ........

                     getJspContext().setAttribute(... , ...);

                     getJspBody().invoke(null);

           }

}

    

 

4,jsp中引入标签

<%@ taglib prefix="mallSearchTag" uri="/mallSearchuri" %>

 

<mallSearchTag:mallSearch
 keyWords="${param.keyWords!=null ? param.keyWords:''}"
 keyWordType="${param.keyWordType!=null ? param.keyWordType:'1'}"
 startPage="${param.startPage!=null ? param.startPage:1}"
 pageSize="${param.pageSize!=null ? param.pageSize:28}"
 items="malls"
 page="page"
 pageHtml="pageHtml">
 <c:set var="mallList" value="${malls}" />
 <c:set var="page" value="${page}" />
 <c:set var="pageHtml" value="${pageHtml}" />
</mallSearchTag:mallSearch>

<c:forEach var="mall" items="${mallList}">

    .....${mall.id}...

   .....${mall.logo}...

</c:forEach>

 

 

<mallListTag:mallList flag="0" pageSize="10" item="item">

   ...${pageScope.item.name}.....

   ....${pageScope.item.rewardCeil}...

</mallListTag:mallList>

抱歉!评论已关闭.