从零开始学JAVA记录(JSTL)——2019年6月13日

今天又是一个学习JAVA的好日子!
JSP 标准标签库,是一个定制标签类库的集合,用于解决一些常见的问题,例如迭代一个映射或者集合、条件测试、XML 处理,甚至数据库和访问数据库操作等。
在 JSP 页面使用 JSTL 类库,必须以下列格式使用 taglib 指令:
JSTL的使用
1、引入标签库的jar包(每个项目拷贝一次)
jstl.jar和standard.jar
2、在jsp页面通过taglib指令导入指定的类库(每个jsp页面需要单独引用)
<%@taglib uri=“要引入的标签库的路径” prefix=“标签库的前缀” %>
前缀可以自定义,程序员习惯设置为指定的前缀名
core核心库:c
fmt格式化标签库:fmt
注:jstl标签操作的一般都是域对象
if标签
格式:
无主体内容:< c:if test=“条件” var=“限域变量名” scope=“域对象的范围 page|request|session|application”></c:if>
有主体内容:
< c:if test=“条件” var=“限域变量名” scope=“域对象的范围 page|request|session|application”>
主体内容
< /c:if>
常用属性:
test:判断的条件,返回true或false,操作的是域对象的值;必须要设置的属性
var:限域变量名,存在域对象中的变量名,可以通过el表达式获取到该变量名对应的值
scope:限域变量名的域范围,四个范围 page|request|session|application
注:if标签没有对应else,所以如果需要做else判断,需要设置两个完全相反的if条件判断

choose、when和otherwise标签
格式:
< c:choose>
< c:when test=“条件”>
满足条件会执行的内容
< /c:when>
< c:when test=“条件”>
满足条件会执行的内容
< /c:when>

< c:otherwise>
当所有的when条件不成立时,才会执行的内容
</c:otherwise
< /c:choose>

注意:
1、choose标签中只能包含when和otherwise标签,而when和otherwise标签中可以嵌套其他标签
报错:Illegal child tag in “c:choose” tag
2、choose和otherwise标签没有属性,而when标签必须设置test属性
3、choose标签中至少有一个when标签,可以没有otherwise标签
4、when标签必须设置在otherwise标签之前
5、otherwise标签只有在所有的when标签都不成立的条件下,才会执行

< c:choose>
<c:when test=" n u m &lt; 60 &quot; &gt; &lt; h 3 &gt; 不 及 格 ! &lt; / h 3 &gt; &lt; / c : w h e n &gt; &lt; c : w h e n t e s t = &quot; {num &lt; 60 }&quot;&gt; &lt;h3&gt;不及格!&lt;/h3&gt; &lt;/c:when&gt; &lt;c:when test=&quot; num<60"><h3></h3></c:when><c:whentest="{num == 60 }">
< h3>运气不错!< /h3>
< /c:when>
< c:when test="${num > 60 && num < 80 }">
< h3>哎哟不错哦!< /h3>
< /c:when>
< c:otherwise>
< h3>你很棒棒哦!< /h3>
< /c:otherwise>
< /c:choose>

forEach标签
格式:
1、遍历内容多次,相当于java中 for(int i = 0; i < length; i++) {}
< c:forEach begin=“开始数” end=“结束数” var=“限域变量名” step=“间隔数”>
${限域变量名}
< /c:forEach>
2、迭代集合,相当于java中的 for(String str : strings) {}
< c:forEach items=“要被迭代的数据(List、Map等)” var=“限域变量名” varStatus=“当前成员的相关信息”>
${限域变量名}
< /c:forEach>
循环内容多次(实现九九乘法表)

< table border=“1” style=“border-collapse: collapse;”>
< c:forEach begin=“1” end=“9” var=“i” step=“1”>
< tr>
<c:forEach begin=“1” end=" i &quot; v a r = &quot; j &quot; s t e p = &quot; 1 &quot; &gt; &lt; t d &gt; {i }&quot; var=&quot;j&quot; step=&quot;1&quot;&gt; &lt; td&gt; i"var="j"step="1"><td>{j } * ${i } = ${j*i }< /td>
< /c:forEach>
< /tr>
< /c:forEach>
< /table>

< table border=“1” style=“border-collapse: collapse;”>
<%
for(int i = 1; i < 10; i++ ) {
%>
< tr>
<%
for(int j = 1; j <= i; j++) {
%>
< td>
<%=j %> * <%=i %> = <%=j*i %>
< /td>
<%
}
%>
< /tr>
<%
}
%>
< /table>

formatNumber标签
格式:
无主体内容:
< fmt:formatNumber value=“要被格式化的值” type=“格式化的类型number|percent|currency” var=“限域变量名” />
有主体内容:
< fmt:formatNumber type=“格式化的类型number|percent|currency” var=“限域变量名”>
要被格式化的值
< /fmt:formatNumber>
type属性的默认值是number
注:如果设置了var属性,格式化后的结果会被限域变量名所接收;若未设置var属性,则格式化的结果会直接显示。

formatDate标签
< fmt:formatDate value=“要格式化的日期型数据” type=“日期类型|时间类型|日期+时间类型” dateStyle=“日期的格式” timeStyle=“时间的格式” pattern=“具体的格式” var=“限域变量名”/>

常用属性:
value:取值的是日期型
type:格式的类型
date日期格式 默认值
time时间格式
both日期+时间格式
dateStyle:日期格式的具体格式 Long、short、Full等
timeStyle:时间格式的具体格式Long、short、Full等
pattern:具体的格式化格式 y M d H m s
注:如果设置了var属性,格式化后的结果会被限域变量名所接收;若未设置var属性,则格式化的结果会直接显示。

<fmt:formatDate value=" ${myDate }"/>

<fmt:formatDate value=" ${myDate }" type=“date” var=“date1”/> d a t e 1 &lt; b r &gt; &lt; f m t : f o r m a t D a t e v a l u e = &quot; {date1 }&lt;br&gt; &lt;fmt:formatDate value=&quot; date1<br><fmt:formatDatevalue="{myDate }" type=“time” /> < br>
<fmt:formatDate value=" m y D a t e &quot; t y p e = &quot; b o t h &quot; / &gt; &lt; b r &gt; &lt; f m t : f o r m a t D a t e v a l u e = &quot; {myDate }&quot; type=&quot;both&quot; /&gt; &lt;br&gt; &lt;fmt:formatDate value=&quot; myDate"type="both"/><br><fmt:formatDatevalue="{myDate }" type=“both” dateStyle=“Long” timeStyle=“Long”/> < br>
<fmt:formatDate value=" m y D a t e &quot; p a t t e r n = &quot; y y y y − M M − d d H H : m m : s s &quot; / &gt; &lt; b r &gt; &lt; f m t : f o r m a t D a t e v a l u e = &quot; {myDate }&quot; pattern=&quot;yyyy-MM-dd HH:mm:ss&quot;/&gt; &lt;br&gt; &lt;fmt:formatDate value=&quot; myDate"pattern="yyyyMMddHH:mm:ss"/><br><fmt:formatDatevalue="{myDate }" pattern=“yyyy/MM/dd HH:mm:ss”/> < br>
< fmt:formatDate value="${myDate }" pattern=“dd/MM/yy HH:mm:ss”/> < br>

parseNumber标签
利用 parseNumber 标签可以将数字、货币或百分比的字符串表示法解析成指定语言环 境的数字。即解析一个代表着数字,货币或百分比的字符串。
< fmt:parseNumber type=“需要被格式化的字符串的类型number|percent|currency”>
要格式化的指定格式的字符串
< /fmt:parseNumber>

parseDate标签
< fmt:parseDate type=“date|time|both” pattern=“日期字符串对应的格式”>< /fmt:parseDate>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值