一、jsp标签的分类:
1)内置标签(动作标签): 不需要在jsp页面导入标签
2)jstl标签: 需要在jsp页面中导入标签
3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签
1、内置标签(动作标签):
<jsp:include/>包含标签:
语法: <jsp:include page="/MyJsp001.jsp">
<jsp:param value="jxf" name="name"/><%--可以将参数传递给包含进来的页面--%>
</jsp:include> jsp中还有一个包含指令,也是将一个页面包含另外的页面 他们之间的区别: 1、首先是语法不同 <jsp:include page="/MyJsp001.jsp"> <%@inclue file="被包含的页面"%> 2、<jsp:include>可以传递参数,<%@inclue%>不可以 3、<jsp:include>:包含页面与被包含页面分别编译为两个java源文件,在运行时引用 <%@inclue%>:包含页面与被包含页面合并编译为一个java源文件
东奥列子:
<div class="tab_menudiv_max">
<div class="tab_box" style="display:block;" related_tab_id="Other_income_group_tab">
<jsp:include page="gmsOtherIncomeGroup.jsp"></jsp:include>
</div>
<div class="tab_box" style="display:none;" related_tab_id="Other_income_group_tab">
<jsp:include page="gmsOtherIncomeSubgroup.jsp"></jsp:include>
</div>
</div>
2、jstl标签: JSTL (java standard tag libarary - java标准标签库)
jstl标签的类型: 核心标签库 (c标签库)//这里主要介绍c标签库,因为用的真的很多 国际化标签(fmt标签库) EL函数库(fn函数库)
使用jstl标签库使用前提(此处以c标签库为例):
1、导入jstl支持包:jstl-1.2.jar(如果用MyEclipse创建项目时候选择java EE5.0,则不需要导包,工程中已经包含)
2、在页面中使用Taglib指令导入标签库
<%--uri:tld文件中的uri名称,prefix:标签前缀--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
c标签库的主要标签:
<c:if>标签:但条件判断
<%--test支持EL表达式 --%>
<c:if test="${true}">
条件成立!
</c:if>
<c:forEach>标签:遍历
<%--遍历list --%>
<c:forEach var="student" begin="0" end="2" items="${list}" step="1" varStatus="varSta">
name:${student.name}---age:${student.age}<br/>
</c:forEach>
<%--遍历map --%>
<c:forEach var="student" begin="0" end="2" items="${map}" step="1" varStatus="varSta">
key:${student.key}---name:${student.value.name}---age:${student.value.age}<br/>
</c:forEach>
<%--遍历array --%>
<c:forEach var="student" begin="0" end="2" items="${array}" step="1" varStatus="varSta">
name:${student.name}---age:${student.age}<br/>
</c:forEach>
<%--一般遍历集合或者数组都是全部遍历,所以只写2个属性var和items,其他取默认值 --%>
<c:forEach var="student" items="${array}">
name:${student.name}---age:${student.age}<br/>
</c:forEach>
3、自定义标签:
当JSTL标签库已经无法满足我们的需求时候,就需要自己开发自定义标签,来满足我们的需求,自定义标签实际上是一个普通的java类,继承SimpleTagSupport类。