jsp核心标签库详情例子

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加强

1Jsp9大内置对象

request       HttpServletRequet

response     HttpServletResponse

config         ServletConfig

application     ServletContext

exception      Throwable

page          Object

pageContext    PageContext

out              JspWriter

session        HttpSession

 

2Jsp4个域对象

request    

session

application

pageContext

作用范围:

pageContext : 处于当前jsp页面中有效的!!

request:      处于同一个请求中有效的!!

session:      处于同一个会话中有效的!

application:   处于同一个web应用中有效的!

3EL表达式

替代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]相当于getkey)方法

 

4jsp标签

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

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值