java--JSTL(1)

JSTL简介:
JSTL(Java Standard Tag Library) –Java标准标签库。
SUN公司制定的一套标准标签库的规范。
JSTL标签库,是由一些Java类组成的。
JSTL组成:
JSTL –Core 核心标签库。 - 这是本部分的重点
JSTL – I18N - 国际化标签库。Internationalization- I18N
JSTL – SQL – 数据库操作标签(有悖于MVC设计模式不用不讲)。
JSTL - Functions – 函数库。
JSTL - XML ,对XML的操作(同SQL标签)。

在jstl-1.2.jar包的META-INF目录中,保存着各种tld文件的版本。请查看。
JSTL核心标签库:
使用JSTL核心标签:
1.如果你的Web项目是基于JavaEE2.5或以上的。可以在你项目的任意页面上通过<%@ taglib 指令使用JSTL的核心标签库。
        <%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>
        uri是引用标签库的资源定位符,并不代表一个实际的地址。
        Prefix是自定义的前缀。
2.如果你的项目是JavaEE2.5以下的项目,必须在在你项目中的lib目录下,存在以下两个jar文件为:
        Jstl.jar、standard.jar
        在上面的包中,存在着jstl的tld文件,用于描述jstl标签的属性、名称、资源等信息。程序就是通过这个tld文件找到相关java类以供运行的。
        然后再在任意的JSP页面通过指令导入jstl.
Jar文件的说明:
Jstl-1.2.jar – 包含在jstl规范中定义的接口和类的class文件,在META-INF目录下包含了所有可用的tld文件。
可以通过以下步骤修改引用jstl的方式:
找到META-INF目录中的c.tld文件,将c.tld放到WEB-INF/tld/目录下。
在web.xml中配置以下信息:
        < jsp-config>
                < taglib>
                < taglib-uri>/c.tld< /taglib-uri>
                < taglib-location>/WEB-INF/tld/c.tld< /taglib-location>
                < /taglib>
        < /jsp-config>
然后在页面上如下使用:
<%@ taglib uri=“/c.tld” prefix=“c”%>
JSTL-Core一共包含以下几个子标签:
< c:out>–${name} 输出标签
< c:set>–pageContext.setAttirbute(key,value,scope); 声明标签
C:remove–删除某个范畴内的数据
< c:if>–判断c:else,c:elsfif
< c:choose>< c:when>< c:otherwise>–判断分枝c:if,c:else if c:
< c:forEach>–遍历
< c:forTokens>–分隔
< c:import>–导入其他资源,相当于动态包含共享同一个request
< c:url>–重写url
< c:redirect>–重定向 response.sendRedirect(‘’..)
JSTL标签-out/set/if:
JSTL标签-out
这里写图片描述
< c:out value=”“…/>用于在页面上输出结果。
< c:out value=“ requestScope.name/>requestname<c:outvalue=  {param.username}”/> - 用于将参数输出到页面上。
< c:out value=“${name}” default=“hello”/>从page到application开始查找,如果没有找到,就显示默认值hello.
另一种设置默认值的方式:

< c:out value=“${name}”>
        Default-value-默认值。
< /c:out>
只有当要求的信息为null或不存在时才会输出默认值。
excapeXml属性:默认值为true,用于将html等标签转换成<等转换元素,
escapeXml=“false”–不对xml或html进行转换,直接输出,这样就会在页面上看到红色的Red字符,因为浏览器会解析html数据。
< c:set/>-声明一个变量
这里写图片描述
< c:set/>标签的作用如下:
1.为String类型的命名变量设置值。
        < c:set var=“变量名” value=“变量的值” scope=“page|request|session|application”/>
        < c:set var=“name” value=“${param.name}”/>直接从参数中取出数据给name赋值。

2.如果变量为JavaBean则为这个JavaBean的属性设置值。
        < c:set target=“JavaBean的变量名” property=“设置的属性” value=“值”/>
示例:
        < jsp:useBean id=”person” class=”cn.itcast.Person”>< /jsp:useBean>
        < c:set target=”${pageScope.person}” property=”name” value=”Jack”/>

3.如果变量为Map则,给Map中的key设置值。
        < c:set target=“代表Map的变量” property=“key” value=“value”/>,示例:
        < jsp:useBean id=”map” class=”java.util.HashMap” scope=”request”>< /jsp:useBean>
        < c:set target=”${requestScope.map}” property=”name” value=”Jack”/>

        < c:out value=”${requestScope.map.name}”/>
< c:if> - 判断标签
这里写图片描述
< c:if/>用于实现Java语言中的if语句。它的语法如下:
< c:if test=“逻辑表达式” var=“代表逻辑表达式值的命名变量” scope=../>
示例:
< c:if test=“${name!=‘Jack’}”>
当name的值为Jack时输出此行信息
< /c:if>
上面的判断等价于下面的代码片段:
if(pageContext.getAttribute(“name”)!=null && !..equals(“Jack”)){
out.println(“…..”);
}

<%@ page language="java" import="java.util.*,cn.hncu.domain.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- prefix前缀,相当于xml的命名空间 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSTL用法演示1</title>
  </head>

  <body>
    <p><font color='red' size='6'>c:out标签--用于在页面上输出结果</font></p>
        --输出表达式或标识符的值(功能和${标识符}类似),差别在两个属性上(default,escapeXml)
    <%
        pageContext.setAttribute("name", "jack");

     %>
    <c:out value="${name}"></c:out><br/>
    <!--默认值default属性的功能:当变量aa为空时,输出该属性中的值none  -->
    <c:out value="${aa}" default="none"></c:out><br/>
    <%
        pageContext.setAttribute("str", "<font color='red' size='3'>湖南城市学院</font>");
     %>
    <!-- escapeXml="true"会把信息中的<号编码成&lt;输出。false则不编码 -->
    false:<c:out value="${str}" escapeXml="false"></c:out><br/>
    true:<c:out value="${str}" escapeXml="true"></c:out><br/>
    <!-- escapeXml="true"会把信息中的"<"号编码成"&lt;"输出,若该属性为flase则编码  -->


    <font color='red' size='6'>c:set标签</font><br/>
    <!-- 给JavaBean设置属性 -->
    <jsp:useBean id="u" class="cn.hncu.domain.User"></jsp:useBean>
    <c:set target="${u}" property="name" value="tom"></c:set>
    <c:set target="${u}" property="age" value="16"></c:set>
    <c:out value="${u}"></c:out><br/>
    姓名:<c:out value="${u.name}"></c:out><br/>
    年龄:<c:out value="${u.age}"></c:out><br/>

    <!-- 给String类型的变量设置值 -->
    <c:set var="sum" value="200"></c:set>
    <c:out value="${sum}"></c:out><br/>
    <font color='red' size='6'>c:if标签--用于判断控制</font><br/>
    <%
        pageContext.setAttribute("age", "25");
     %>
     ${age>20?"湖南abc代码功能简单时使用":"dsfsd"}<br/>
     <!-- 实现if-else功能 -->
     <!-- scope="session"放的哪个容器 -->
    <c:if test="${age>20}" var="boo" scope="session">
        湖南abc<br/>
        里面有很多代码时,用这种方式<br/>
    </c:if>
    <c:if test="${!boo}">
        sfdsfsd<br/>
    </c:if>
  </body>
</html>

这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值