您的位置:首页 > Web前端 > JavaScript

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>
 
 
 
 

课程回顾

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/>
  重定向

 
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息