jsp核心标签库详情例子
2017-04-26 10:25
330 查看
Jstl
:Java standard tag libarary --Java标准标签库。
1) 导入jstl支持的jar包(标签背后隐藏的java代码)
注意:使用javaee5.0的项目自动导入jstl支持jar包
2)使用taglib指令导入标签库
<%@taglib uri="tld文件的uri名称" prefix="简写" %>
3)在jsp中使用标签
核心标签库的重点标签:
保存数据:
<c:set></c:set>
获取数据:
<c:out value=""></c:out>
单条件判断
<c:if test=""></c:if>
多条件判断
<c:choose></c:choose>
<c:when test=""></c:when>
<c:otherwise></c:otherwise>
循环数据
<c:forEach></c:forEach>
<c:forTokens items="" delims=""></c:forTokens>
重定向
<c:redirect></c:redirect>
1)set标签:保存数据到域当中
<c:set var="score" value="86" scope="page"></c:set>
<c:set var="name" value="<h3>jiashaokun</h3>" scope="page"></c:set>
${name}
2)out标签:获取数据 。
问题:既然el${}标签也可以输出,为什么还要用out标签呢?
out 标签有附加的功能。
1,default 可以设置默认值。
2,escapeXml 是否对value内容进行转义,ture原样输出不转义(默认),FALSE转义。
<c:out value="${name}" default="默认值" escapeXml="true"></c:out>
<hr/>
3)if标签:单条件判断 test=“true”条件成立。test 就是条件。--%>
<c:if test="${!empty
name}">
name不为是空字符串,也不是null
</c:if>
<hr/>
4) 等价于:if()elseif()
choose相当于if(test条件)
when 相当于
elseif(条件)
when 相当于
elseif(test条件)
otherwise 相当于最后的 else{}没有条件。
<c:choose>
<c:when test="${score
>= 90}">
优秀
</c:when>
<c:when test="${score
>= 80}">
良好
</c:when>
<c:when test="${score
>= 70 }">
一般
</c:when>
<c:when test="${score
>= 60 }">
及格
</c:when>
<c:otherwise>
不及格
</c:otherwise>
</c:choose>
<hr/>
5)foreach标签:
<%
//集合
List<student> list =
new ArrayList();
list.add(new student("jia",24,"id333"));
list.add(new student("cui",24,"id444"));
list.add(new student("kun",24,"id555"));
//将集合保存到page域当中
pageContext.setAttribute("list",
list,pageContext.REQUEST_SCOPE);
//map
Map<String,student> map =
new HashMap<String,student>();
map.put("101",new student("cui",10,"id999"));
map.put("102",new student("jia",23,"id888"));
map.put("103",new student("wang",24,"id777"));
//将map保存到page域当中
pageContext.setAttribute("map",map);
%>
<%--就是for循环:
begin : 从哪开始。默认从0
end:
到哪结束。默认到最后一个元素。
step: 每次加几。默认是1
items: 循环遍历哪个域中的对象。
var:
取出的每一个对象。
varStatus: 当前正在遍历元素的状态对象。(count属性:当前位置,从1开始计数。)
map的遍历:
items="${map}"相当于返回一个返回的对象的是entry类型 Map.Entry<String, student>
entr = (Entry<String, student>) map.entrySet();
${stu.key} 相当于调用entry对象的方法 entr.getKey();
${stu.value.name} 相当于调用entry对象的方法 entr.getValue().getName()
//代码:
for (Map.Entry<String, student>
en : map.entrySet()) {
System.out.println(en.getKey()+":--"+en.getValue().getName());
}
--%>
<c:forEach begin="0" end="2" step="1" items="${list}" var="stu" varStatus="statu">
序号:${statu.count} --姓名:${stu.name} -- 年龄:${stu.age}<br/>
</c:forEach>
<hr/>
<c:forEach items="${map}" var="stu" varStatus="statu">
键值:${stu.key} -- 名字:${stu.value.name} --年龄:${stu.value.age}<br/>
</c:forEach>
<hr/>
6)forTokens标签:遍历切割字符串
<c:set var="str" value="java-php-net-ps" scope="page"></c:set>
<c:forTokens items="${str}" delims="-" var="s">
${s}<br/>
</c:forTokens>
<hr>
7)redirect转发
等价于:response.sendRedirect("url");
--%>
<c:redirect url="www.baidu.com"></c:redirect>
1)Jsp的9大内置对象
request
HttpServletRequet
response
HttpServletResponse
config
ServletConfig
application
ServletContext
exception
Throwable
page
Object
pageContext
PageContext
out
JspWriter
session
HttpSession
2)Jsp的4个域对象
request
session
application
pageContext
作用范围:
pageContext
: 处于当前jsp页面中有效的!!
request:
处于同一个请求中有效的!!
session:
处于同一个会话中有效的!
application:
处于同一个web应用中有效的!
3)EL表达式
替代jsp表达式,用于向浏览器输出域对象中的变量值和表达式计算的结果。
语法:
${变量}
3.1
输出普通字符串: ${name}
3.2
输出对象属性: ${student.name} 注意:
.name 相当于 .getName()方法
3.3
输出List集合: ${list[0].name } 注意:
[0] 相当于
get(下标)方法
3.4
输出map集合: ${map[key].name} 注意: [key]相当于get(key)方法
4)jsp标签
替代jsp脚本,用于在jsp页面中执行java代码
4.1
内置标签:
<jsp:foward/>request.getRequesetDipsacher("/路径").foward(request,response);
<jsp:param/> 参数标签
?name=eric
<jsp:include/>
包含其他页面 ,动态包含
静态包含:
先合并再翻译。不能传递参数
动态包含:
先翻译再合并。可以传递参数
4.2
jstl标签库 (java标准标签库)
使用步骤:
1)确保jstl支持的jar包存在于项目中
2)在jsp页面中导入标签库
<%@taglib
uri="标签库声明文件tld文件的标记" prefix="前缀"%>
3)使用标签库中的标签
核心标签库:
<c:set
/> 保存数据到域对象中
<c:out/>
从域中取出数据
<c:if/>
单条件判断
<c:choose/>
+ <c:when/> + <c:otherwise/> 多条件判断
<c:forEach
/> 遍历数据
<c:forTokens/>
遍历特殊字符串
<c:redirect/>
重定向
:Java standard tag libarary --Java标准标签库。
1) 导入jstl支持的jar包(标签背后隐藏的java代码)
注意:使用javaee5.0的项目自动导入jstl支持jar包
2)使用taglib指令导入标签库
<%@taglib uri="tld文件的uri名称" prefix="简写" %>
3)在jsp中使用标签
核心标签库的重点标签:
保存数据:
<c:set></c:set>
获取数据:
<c:out value=""></c:out>
单条件判断
<c:if test=""></c:if>
多条件判断
<c:choose></c:choose>
<c:when test=""></c:when>
<c:otherwise></c:otherwise>
循环数据
<c:forEach></c:forEach>
<c:forTokens items="" delims=""></c:forTokens>
重定向
<c:redirect></c:redirect>
1)set标签:保存数据到域当中
<c:set var="score" value="86" scope="page"></c:set>
<c:set var="name" value="<h3>jiashaokun</h3>" scope="page"></c:set>
${name}
2)out标签:获取数据 。
问题:既然el${}标签也可以输出,为什么还要用out标签呢?
out 标签有附加的功能。
1,default 可以设置默认值。
2,escapeXml 是否对value内容进行转义,ture原样输出不转义(默认),FALSE转义。
<c:out value="${name}" default="默认值" escapeXml="true"></c:out>
<hr/>
3)if标签:单条件判断 test=“true”条件成立。test 就是条件。--%>
<c:if test="${!empty
name}">
name不为是空字符串,也不是null
</c:if>
<hr/>
4) 等价于:if()elseif()
choose相当于if(test条件)
when 相当于
elseif(条件)
when 相当于
elseif(test条件)
otherwise 相当于最后的 else{}没有条件。
<c:choose>
<c:when test="${score
>= 90}">
优秀
</c:when>
<c:when test="${score
>= 80}">
良好
</c:when>
<c:when test="${score
>= 70 }">
一般
</c:when>
<c:when test="${score
>= 60 }">
及格
</c:when>
<c:otherwise>
不及格
</c:otherwise>
</c:choose>
<hr/>
5)foreach标签:
<%
//集合
List<student> list =
new ArrayList();
list.add(new student("jia",24,"id333"));
list.add(new student("cui",24,"id444"));
list.add(new student("kun",24,"id555"));
//将集合保存到page域当中
pageContext.setAttribute("list",
list,pageContext.REQUEST_SCOPE);
//map
Map<String,student> map =
new HashMap<String,student>();
map.put("101",new student("cui",10,"id999"));
map.put("102",new student("jia",23,"id888"));
map.put("103",new student("wang",24,"id777"));
//将map保存到page域当中
pageContext.setAttribute("map",map);
%>
<%--就是for循环:
begin : 从哪开始。默认从0
end:
到哪结束。默认到最后一个元素。
step: 每次加几。默认是1
items: 循环遍历哪个域中的对象。
var:
取出的每一个对象。
varStatus: 当前正在遍历元素的状态对象。(count属性:当前位置,从1开始计数。)
map的遍历:
items="${map}"相当于返回一个返回的对象的是entry类型 Map.Entry<String, student>
entr = (Entry<String, student>) map.entrySet();
${stu.key} 相当于调用entry对象的方法 entr.getKey();
${stu.value.name} 相当于调用entry对象的方法 entr.getValue().getName()
//代码:
for (Map.Entry<String, student>
en : map.entrySet()) {
System.out.println(en.getKey()+":--"+en.getValue().getName());
}
--%>
<c:forEach begin="0" end="2" step="1" items="${list}" var="stu" varStatus="statu">
序号:${statu.count} --姓名:${stu.name} -- 年龄:${stu.age}<br/>
</c:forEach>
<hr/>
<c:forEach items="${map}" var="stu" varStatus="statu">
键值:${stu.key} -- 名字:${stu.value.name} --年龄:${stu.value.age}<br/>
</c:forEach>
<hr/>
6)forTokens标签:遍历切割字符串
<c:set var="str" value="java-php-net-ps" scope="page"></c:set>
<c:forTokens items="${str}" delims="-" var="s">
${s}<br/>
</c:forTokens>
<hr>
7)redirect转发
等价于:response.sendRedirect("url");
--%>
<c:redirect url="www.baidu.com"></c:redirect>
课程回顾
Jsp加强1)Jsp的9大内置对象
request
HttpServletRequet
response
HttpServletResponse
config
ServletConfig
application
ServletContext
exception
Throwable
page
Object
pageContext
PageContext
out
JspWriter
session
HttpSession
2)Jsp的4个域对象
request
session
application
pageContext
作用范围:
pageContext
: 处于当前jsp页面中有效的!!
request:
处于同一个请求中有效的!!
session:
处于同一个会话中有效的!
application:
处于同一个web应用中有效的!
3)EL表达式
替代jsp表达式,用于向浏览器输出域对象中的变量值和表达式计算的结果。
语法:
${变量}
3.1
输出普通字符串: ${name}
3.2
输出对象属性: ${student.name} 注意:
.name 相当于 .getName()方法
3.3
输出List集合: ${list[0].name } 注意:
[0] 相当于
get(下标)方法
3.4
输出map集合: ${map[key].name} 注意: [key]相当于get(key)方法
4)jsp标签
替代jsp脚本,用于在jsp页面中执行java代码
4.1
内置标签:
<jsp:foward/>request.getRequesetDipsacher("/路径").foward(request,response);
<jsp:param/> 参数标签
?name=eric
<jsp:include/>
包含其他页面 ,动态包含
静态包含:
先合并再翻译。不能传递参数
动态包含:
先翻译再合并。可以传递参数
4.2
jstl标签库 (java标准标签库)
使用步骤:
1)确保jstl支持的jar包存在于项目中
2)在jsp页面中导入标签库
<%@taglib
uri="标签库声明文件tld文件的标记" prefix="前缀"%>
3)使用标签库中的标签
核心标签库:
<c:set
/> 保存数据到域对象中
<c:out/>
从域中取出数据
<c:if/>
单条件判断
<c:choose/>
+ <c:when/> + <c:otherwise/> 多条件判断
<c:forEach
/> 遍历数据
<c:forTokens/>
遍历特殊字符串
<c:redirect/>
重定向
相关文章推荐
- JSP——JSTL核心标签(2)
- WEB开发的jsp例子标签库(jstl)的使用
- jsp中核心标签库c标签详解
- 【JSP】JSTL核心标签库的使用方法和示例
- JSP编程专题2之JSP核心三(EL函数标签)
- jsp 自定义标签【继承TagSupport类】【在 tld描述 中声明 代码段变量】 简单例子四
- 小峰servlet/jsp(6)jstl核心标签库
- jsp Bean 标签 使用 一般规则 一个例子
- JSP核心标签库
- JSP 核心标签
- JSP标签之jstl核心标签
- JSP——JSTL核心标签(1)
- JSP基础语法之十六:JSTL配置和核心标签(C)的使用
- 核心标签库<c:set>标签、<c:choose>标签、<c:forEach>标签&<c:if>标签的使用例子
- JSP 核心标签库
- JSP -- JSTL核心标签 (1)
- JSP中一些JSTL核心标签用法总结
- JSP编程专题2之JSP核心四(JSTL核心标签库,格式化标签库)
- JSP自定义标签之Hello Costom tag小例子
- JSP核心标签库