美文网首页
JSP自定义标签_EL表达式_JSTL标签

JSP自定义标签_EL表达式_JSTL标签

作者: bboymonk | 来源:发表于2017-05-08 14:03 被阅读0次

    1,创建一个tld文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <taglib 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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
            version="2.0">
        <description>A tag library exercising SimpleTag handlers.</description>
        <tlib-version>1.0</tlib-version>
        <short-name>SimpleTagLibrary</short-name>
        <uri>/wjb-tag</uri>
    
        <tag>
            <name>loginDate</name>
            <tag-class>loginTag</tag-class>
            <body-content>empty</body-content>
        </tag>
    </taglib>
    

    2,创建一个标签处理类

    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * Created by wjb on 2017/5/8.
     * 自定义标签处理类
     */
    public class loginTag extends TagSupport{
    
        @Override
        public int doStartTag() throws JspException {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String dataStr = format.format(new Date());
            try {
                pageContext.getOut().print(dataStr);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return super.doStartTag();
        }
    }
    

    3,使用自定义标签

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="wjb" uri="/wjb-tag" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      welcome to my world:<wjb:loginDate/>
      </body>
    </html>
    
    一直报错,原因未找到。
    web.xml里配置还是报错。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
        <jsp-config>
            <taglib>
                <taglib-uri>/wjb-tag</taglib-uri>
                <taglib-location>/WEB-INF/login.tld</taglib-location>
            </taglib>
        </jsp-config>
    </web-app>
    

    JSTL标签的使用

    先导入jar包,jstl.jar和standard.jar



    使用标签前要先导入



    <c:out value="this is my jstl"/>
    EL表达式用法:

    上面两个表达式结果是一样,但也有下面的特殊情况:





    set标签:

    jstl函数:

    是否包含某字符串,返回true,false

    <c:out value="${fn:contains('你好,hello world','wjb')}"></c:out>
    <c:out value="${fn:containsIgnoreCase('你好,Hello world','hello')}"></c:out>
    

    catch标签:

    if标签:

    <c:if test="${param.count > 20}" var="result">
        <c:out value="输入的值是:${param.count}"/>
    </c:if>
    <c:out value="${result}"/>
    

    choose,when,otherwise标签:

    <form action="#">
        个数:<input type="text" name="count">
        commit:<input type="submit">
      </form>
      <c:choose>
        <c:when test="${param.count >= 60 && param.count < 80}">
          <c:out value="成绩合格"/>
        </c:when>
        <c:when test="${param.count >= 80 && param.count <= 100}">
          <c:out value="成绩优秀"/>
        </c:when>
        <c:otherwise>
          <c:out value="输入有问题"/>
        </c:otherwise> 
      </c:choose>
    

    forEach标签:


    <c:forEach var="wjb" items="${list}" varStatus="status">
      <c:out value="${wjb}"/>====
      <c:out value="index属性值:${status.index}"/>
      ===<c:out value="是否是第一个值:${status.first}"/><br/>
    </c:forEach>
    

    forTokens标签:

    类似于String的split方法。

    <c:forTokens items="159-0581-3552-654651-165651-651" delims="-" var="num">
        <c:out value="${num}"/><br/>
    </c:forTokens>
    

    import标签:

    <c:import url="http://www.baidu.com" charEncoding="UTF-8"/>
    

    redirect标签:

    <c:param/>标签可以传参数

    <c:redirect url="/index.jsp">
        <c:param name="username">wjb</c:param>
        <c:param name="password">123</c:param>
    </c:redirect>
    

    相关文章

      网友评论

          本文标题:JSP自定义标签_EL表达式_JSTL标签

          本文链接:https://www.haomeiwen.com/subject/vgvmtxtx.html