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>
网友评论