JSTL JSP standard Tag Libary(JSP标准标签库)
JSTL允许开发人员可以像使用HTML标签 那样在JSP中开发Java功能。
JSTL库有core, i18n, fmt, sql 等等。
注意 uri=“http://java.sun.com/jsp/jstl/…” 省略号可被替代为jstl标签库
每调用一个库 都得写相应的uri 前半部分都是一致的 后缀跟其相应的库名
再接触JSTL之前复习一部分以及解释部分表达式
复习主要是JSP的指令标签 也就是——<%@ %>
JSP中有很多种指令 需要运用这个指令 就得使用这个指令标签
截至今日接触到的指令有page 这个指令是写JSP文件必带的类似于C语言的头文件 在这之后就是include 而这次是有关JSTL的taglib指令。 指令之后一般都会伴随着一些设置语句。
示例:
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"
import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
在进入主要内容需要解释一下${}
这个的作用 —— 类似于getParameter方法获取它的真值 可以是字符串或者数字,这个是EL表达式,表示你从另外一个页面传过来的参数的值
el表达式,它会从page,request,session,application中取值。比如:在request中setAttribute(“name”,“测试”),那么${name} 就会得到值为测试。
<%=request.getAttribute(“name”) %> 等价于$ {
name}
<%=page%>等价于$ {
page}
JSTL中对数据的set out remove三种操作:
在页面中使用JSTL需要在jsp中 通过指令进行设置
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
其中uri是我由导入的jar包来写的 是固有的。
prefix=“c” 表示后续的标签使用都会以<c: 开头,也是一种替代
<c:set var="name" value="${'gareen'}" scope="request" />
其中这个"${'gareen'}" 解释过来就是自己取自己的真值为字符串green 与name形成键值对 也是一种固有写法 注意打双引号
另一种理解 这个是value设置真值的写法
scope的意思是范围 换一种方式理解就是对那四个作用域进行选择
至于var value 是在设置真值时候的一种格式
这里选的是作用域request中设置name,相当于
<%request.setAttribute("name","gareen")%>
<c:out value="${name}" />//out这里用了out隐式对象
相当于 <%=request.getAttribute("name")%>//getAttribute和getparameter都是取值
<c:remove var="name" scope="request" />
这样的写法很好理解建立在之前的基础
在作用域request中删掉name,相当于
<%request.removeAttribute(“name”)%>
作用域可以是pageContext, request, session, application,这三个操作再JSTL中的写法和动作include有点相像 只不过一个是固有标签并且page=
另一个是自定义标签 value=
以下的JSTL中的if else将会对${}
理解更加深刻
示例:
<c:set var="hp" value="${10}" scope="request"/>
<c:if test="${hp<5}">
<p>dying!</p>
</c:if>