verysu 设计模式 设计模式 响应式编程 百度开发平台 codeforces leetcode usfca

导航

JSP-jstl

指令标签

<%--page指令--%>
<%--contentType: 用于告知浏览器使用什么格式和编码方式解析响应信息--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%--language: 声明当前jsp页面中使用什么脚本语言, 默认java--%>
<%@ page language="java" %>
<%--pageEncoding: 设置jsp引擎在翻译成java文件时使用什么编码方式--%>
<%@ page pageEncoding="UTF-8" %>
<%--errorPage: 用于设定当前页面发生异常时跳转到哪个页面进行处理--%>
<%@ page errorPage="error.jsp" %>
<%--isErrorPage: boolean值, true表示当前页面是一个错误处理页面, false默认值--%>
<%@ page isErrorPage="true" %>

<%--静态引入, 会将两个jsp合并生成一个java文件--%>
<%--<%@ include file="copyright.jsp" %>--%>
<%--动态引入, 会生成两个java文件, 通过调用include方法实现动态引入--%>
<jsp:include page="copyright.jsp"></jsp:include>

九大内置对象
因为JSP代码,最后都会被编译成java代码,并且编译到servet的service方法中。因此jsp中的九大内置对象,就是serlvet的service方法中的九个可以直接使用当对象。
EL表达式取值
用于简化在JSP中取值操作。el表达式本质上是调用了get方法。属性名要和get方法名保持一致。
> 请求参数: ${param.参数名} / ${paramValues.参数名}
> 作用域属性: ${属性名}
作用域取值
在EL表达式中, 针对四个作用域提供了对应的四个关键字, 用于代表着四个作用域
> pageContext -> pageScope
> request -> requestScope
> sesssion -> sessionScope
> application -> applicationScope
// 向pageContext作用域存放数据
pageContext.setAttribute("msg", "this is a test");
// 作用域中的name同名时, 值会进行覆盖, 相当于修改操作
pageContext.setAttribute("msg", "PageContext");
// 删除操作
// pageContext作用域会删除所有作用域中的对应的msg
// 其他作用域只删除自己作用域中的数据
${pageScope.msg}<br>
${requestScope.msg}<br>
${sessionScope.msg}<br>
${applicationScope.msg}

JSTL
JSP标砖标签库。
jstl中常用的标签库:
> 核心标签库: core, 简称c
> 格式化标签库: format, 简称fmt
> 函数标签库: function, 简称fn
核心标签库
核心标签库是jstl中使用频率最高的标签库, 封装了很多有效的功能, 例如: 迭代, 判断, 操作作用域的功能等...
常用的标签:
<c:set> 用于向指定的作用域中存放数据, scope可以省略, 默认存放到pageContext作用域
<c:set var="demo" value="page"></c:set>
<c:set var="demo" value="session" scope="session"></c:set>
<c:set var="demo" value="application" scope="application"></c:set>

<c:out> 
<%-- 用于向浏览器输出数据, 通常配合EL表达式使用, 当数据为null时, 会显示default值 --%>
<c:out value="${demo123}" default="当没有数据时, 显示默认值"></c:out>

<c:remove> 删除作用域中值
<%-- 从指定作用域移除属性 --%>
<c:remove var="demo" scope="session"></c:remove>

<c:if> 判断
<%-- 用于条件判断, 单分支判断, 通过test属性指定判断条件 --%>
当前分数: ${score}<br>分数等级:
<c:if test="${score ge 90}" var="flag1">A - ${flag1}</c:if
<c:if test="${score ge 70 && score lt 90}" var="flag2">B - ${flag2}</c:if>
<c:if test="${score ge 60 && score lt 70}" var="flag3">C - ${flag3}</c:if>
<c:if test="${score lt 60}">D</c:if>
<br>
<c:if test="${score ge 60}" var="flag">及格</c:if>
<c:if test="${!flag}">不及格</c:if>

<c:choose><c:when><c:otherwise> 选择
<%-- 功能类似于switch...case...default --%>
<c:choose>
<c:when test="${score ge 90}">A</c:when>
<c:when test="${score ge 80}">B</c:when>
<c:when test="${score ge 70}">C</c:when>
<c:when test="${score ge 60}">D</c:when>
<c:otherwise>E</c:otherwise>
</c:choose>
<hr>
<c:forEach> 遍历

3. forEach中的属性
> var: 迭代变量, 存放在pageContext作用域
> begin: 迭代起始值
> end: 迭代结束值
> step: 迭代变量变化的步长
> items: 要遍历的集合, 需要使用EL表达式取值
> varStatus: 迭代变量的状态
- index: 索引, 从0开始
- count: 计数, 从1开始
- first: boolean, 表示是否是第一个
- last: boolean, 表示是否是最后一个
- current: 对象, 当前爹迭代的对象值
格式化标签库
用于对数字和日期进行格式化操作
<fmt:formatNumber value="${u.sal}" pattern="¥###,###,##0.00"></fmt:formatNumber>
<fmt:formatDate value="${u.birthday}" pattern="yyyy-MM-dd"></fmt:formatDate>
<fmt:formatDate value="${u.loginTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
<fmt:formatNumber>标签有如下属性:

 

 

 

如果type属性为percent或number,那么您就可以使用其它几个格式化数字属性。maxIntegerDigits属性和minIntegerDigits属性允许您指定整数的长度。若实际数字超过了maxIntegerDigits所指定的最大值,则数字将会被截断。有一些属性允许您指定小数点后的位数。minFractionalDigits属性和maxFractionalDigits属性允许您指定小数点后的位数。若实际的数字超出了所指定的范围,则这个数字会被截断。数字分组可以用来在每三个数字中插入一个逗号。groupingIsUsed属性用来指定是否使用数字分组。当与minIntegerDigits属性一同使用时,就必须要很小心地来获取预期的结果了。您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。

<fmt:formatDate>标签有如下属性:

${param.test}
    <%=request.getParameter("test") %>
</body>
均可取出URL中的test的值。。
${requestScope.name} 等价于 request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器保存的值。

posted on 2020-01-08 12:26  泳之  阅读(175)  评论(0编辑  收藏  举报

我是谁? 回答错误