在一些老项目中,我们经常见到在jsp文件中使用tag标签,处理一些业务逻辑。将相似的逻辑抽取出来,交给tag标签去处理,实际上,就是一种解耦思想。
下面简单介绍下:
- 引入jar包 jstl1.2jar
- 编写.tag文件,默认放在Web-INF/tags目录下
- 在jsp中引入tag标签,并使用。
我的代码如下:
show.tag
<%@tag import="com.pc.Student"%>
<%@ tag language="java" pageEncoding="UTF-8"%>
<!-- required属性可选。缺省值是false。若设为true 则JSP页面必须向Tag文件的attribute属性传递一个引用,否则出错。 -->
<%@ attribute name="length" required="false" %>
<%@ variable name-given="student" variable-class="com.pc.Student" scope="AT_END" %>
<body bgcolor=pink><P>
<%
Student stu = new Student("evan",18);
stu.setAge(20);
jspContext.setAttribute("student",stu);
int size=1;
for(int i=1;i<=3;i++) {
out.println("换行:");
size=size+1;
%> <font size=<%=size%>>
<!-- jsp:doBody 仅在tag文件中使用,告诉容器计算JSP中本tag的body内容,并显示出来。-->
<!-- 可以加上var varReader属性和scope属性,将输入放入变量而不是显示出来 -->
<jsp:doBody />
</font>
<% }
%> </P></body>
在hello.jsp中使用
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="look" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<look:show length="1000">
开开心心,快快乐乐。
</look:show>
<%
out.print(student.toString());
%>
</html>
参考资料:
Tag文件的使用
https://wenku.baidu.com/view/b8fd63df370cba1aa8114431b90d6c85ec3a88c7.html
下面附上我的github的地址:
github地址