JSTL标签使用方法

keyword:JSTL标签、<c:choose>、<c:forEach>、<c:forTokens>、<c:if>、<c:import>、<c:otherwise>、<c:out>、<c:param>、<c:redirect>、<c:remove>、<c:url>、<c:when>、<c:set>、<c:catch>

原来一直没有看过,我说过我是新手,可是好多资料上似乎也不重视 JSTL 。我看项目源码发现当中使用到了这个标签库。感觉其还真是方便。页面看起来更加清爽。降低了 JAVA 程序猿亲自写的代码量。还真验证了。不懒不做程序猿。程序猿假设写代码不想着偷懒,那么生活是非常无趣的。

以下总结总结,学习学习。:)

JSP 标准标记库( Standard Tag Library , JSTL) 是一组以标准化格式实现很多通用的 Web 网站功能的定制标记。

JSP 技术的优势之中的一个在于其定制标记库工具。

除了核心 JSP 标记,如 jsp:include 之外。定制标记库工具使您能够创建唯一的标记来描写叙述以站点或应用程序为导向的操作。一旦您创建了定制标记库 ( 简称 taglib) 。当您扩展项目或转向还有一个项目时您能够反复使用这些标记。您还能够将 taglib 传递给其他开发者,从而他们能够在自己的站点上使用,或者在您 Web 应用程序的其他部分使用。

JSTL 的目标是为了简化 JSP 页面的设计。对于页面设计人员来说,使用脚本语言(默认值是 JAVA 语言)操作动态数据是比較困难的。而採用标签和表达式语言相对easy一些, JSTL 的使用为页面设计人员和程序开发者的分工协作提供了便利。

一. 配置 JSTL

包含两个 JAR 文件, jstl.jar 和 standard.jar 。

是什么没有必要管,重在应用( 1+1 ? =2 ,我们没有必要深究,仅仅须要知道这么用即可。)。

原文引入:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

二. Core 标签库

Core 标签库主要包含了一般用途的标签、条件标签、迭代标签和 URL 相关的标签。在 JSP 页面使用 Core 标签,要使用 taglig 指令,指定引用的标签库。例如以下:

<%@ taglib rui=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>

一般用途的标签有 <c:out> 、 <c:set> 、 <c:remove> 、 <c:cath>

1.<c:out>

用于计算一个表达式并将结果输出。类似于 JSP 中 <%=%> 表达式,或者是 EL 中 $ ${el-expression} 。

2.<c:set>

用于设置范围变量的值或者 javabean 对象的属性。

看个实际样例:

<c:set var=”username” value=”lisi” scope=”session”/>

这样就相当于设置了 session 。

3.<c:remove>

相对 <c:set> 其作用是移除范围变量。

比方: <c:remove var=”nusername” scope=”session”/>

4.<c:catch>

用于捕获在当中嵌套的操作所抛出的异常对象。并将异常信息保存到变量中。

我们将有可能抛出异常的代码放置到開始标签 :<c:catch> 和结束标签 :</c:catch> 之间。假设当中代码出现异常。异常对象将被捕获,保存在 var 声明的变量中。该变量总是有 page 范围。

假设没有发生异常,而 var 所标识的范围变量将被移除。

假设没有指定 var 属性,异常仅仅是简单的被捕获。异常信息并不会被保存。

Eg :

<c:catch var=”exception”>

<%

int i = 5;

int j = 0;

int k=i/j;

%>

</c:catch>

<c:out value=”${exception}” /><br>

<c:out value=”${exception.massage}”/>

后一句相当于: exception.getMessage()

条件标签包含 <c:if><c:choose><c:when><c:otherwise>

1.<c:if>

用于实现 java 中的 if 语句功能。

<c:if test=”${user.visitCount==1}”>

This is your first visit .

</c:if>

若为 true ,会打印中间部分。也能够声明 var ,方便下一步推断。

<c:if test=”${param.name==’admin’}” value=”result”/>

<c:out value=”${result}” />

2.<c:choose>

<c:choose> 和 <c:when> 、 <c:otherwise> 一起实现相互排斥条件运行。类似于 java 中的 if else.

<c:choose> 一般作为 <c:when> 、 <c:otherwise> 的父标签。

eg :

<c:choose>

<c:when test="${row.v_money<10000}">

初学下海

</c:when>

<c:when test="${row.v_money>=10000&&row.v_money<20000}">

身手小试

</c:when>

<c:otherwise>

商业能手

</c:otherwise>

</c:choose>

迭代标签

迭代标签有 <c:forEach> 和 </c:forEach>

// 遍历记录集

<c:forEach items="${finalResult.rows}" var="row">

<tr class="<%=tdClass[(rank+1)%2]%>">

<td align="center"><span><%=rank%> </span></td>

<td align="center"><span ><c:out value="${row.player_name}"/></span> </td>

<td align="center"><span > ¥ <c:out value="${row.money}"/></span></td>

</tr>

<%rank++;%>

</c:forEach>

也能够设定固定次数。

<c:forEach var =”i” begin=”100 “ end= “110”>

${i}

</c:forEach>

假设再加个 step= “ 2 ”那么每次增长为 2 。

三. sql 标签

设置数据源:

<sql:setDataSource dataSource="proxool.breadTycoon" />

// 将数据库某查询的结果声明为一个变量

<sql:query var="finalResult" >

select player_name,money from tb_player order by money DESC LIMIT 10

</sql:query>

然后能够:

<c:forEach items="${ finalResult.rows}" var="row" varStatus="s">

advCosts[${s.index}]=${row.adv_cost};

</c:forEach>

数据更新标签:

<sql:update>

call proc_set_role_salespro(?,?,?,?,?);

<sql:param value="30"/>

<sql:param value="39"/>

<sql:param value="<%=spID%>"/>

<sql:param value="<%=productID%>"/>

<sql:param value="1"/>

</sql:update>

<sql:query var="queryAllChannelCount">

SELECT COUNT(*) as total FROM tb_channel WHERE game_id=? AND begin_round<func_cur_round(?

) AND player_id=? AND channel_flag=0

<sql:param value="${gameID}"/>

<sql:param value="${gameID}"/>

<sql:param value="${playerID}"/>

</sql:query>

<c:forEach items="${queryAllChannelCount.rowsByIndex}" var="channelCN">

<c:set value="${channelCN[0]}" var="channelTotal"/>

</c:forEach>

调用存储过程更新数据库:

<c:if test="${param.changsubmit!=null}" >

<c:forEach items="${paramValues.pro_id}" var="getpro_id" varStatus="getparamsta">

<sql:update>

call proc_set_role_product(?

,?,?,?,?,?,?

,?

);

<sql:param value="${gameID}"/>

<sql:param value="${playerID}"/>

<sql:param value="${getpro_id}"/>

<sql:param value="${getpro_id}"/>

<sql:param value="${paramValues.pro_sort[getparamsta.index]}"/>

<sql:param value="${paramValues.price[getparamsta.index]}"/>

<sql:param value="${paramValues.output[getparamsta.index]}"/>

<sql:param value="0"/>

</sql:update>

</c:forEach>

</c:if>

四. 格式化标签

<fmt: formatNumber value =”12.3” pattern=”.000”/>

将输出 12.300. 应用样式 ”.000”, 将使格式化后的小数部分有 3 位。

不足 3 位将以 0 补齐。

<fmt:formatDate value=”<%=new java.util.Date() %>” type=”date” />

格式化的结果是: 2007-5-27 .

<fmt:formatDate value=”<%=new java.util.Date() %>” type=”time” />

格式化的结果是: 9:25:11

<fmt:formatDate value=”<%=new java.util.Date() %>” type=”both” />

格式化的结果是: 2007-5-27 9:25:11

补充知识点:

1. 替换 request.getParameter("test"):

<c:if test="${param.test!=null}" >

<c:out value="${param.test}" />

</c:if>

2. <c:redirect url="a.jsp">

3.<c:redirect url="/max.jsp" context="/ch16">

<c:param name="name1" value="665"/>

<c:param name="name3" value=" 斯蒂芬 "/>

</c:redirect>

4.<c:forTokens items="zhangsan:lisi:as" delims=":" var="name">

${name}

</c:forTokens>

jsp if else c标签 总结相关推荐

  1. jsp自定自定义标签

    2019独角兽企业重金招聘Python工程师标准>>> 1 先要导入一个jar包 2 自定一个标签库 ,该库放在WEB-INF/tld下面 3 需要实现 该类 extends Tag ...

  2. 深入体验JavaWeb开发内幕——简述JSP中的自定义标签叫你快速学会

    转载自   深入体验JavaWeb开发内幕--简述JSP中的自定义标签叫你快速学会 自定义标签,顾名思义,就是自己定义的标签.那么我们为什么要自己定义一些标签呢? 我们知道,如果要在JSP中获取数据我 ...

  3. jsp中用java写标签id_jsp中自定义标签用法实例分析

    本文实例讲述了jsp中自定义标签用法.分享给大家供大家参考.具体如下: 这里简单的写了一个自定义标签,自己定义标签的好处就是在jsp页面中可以使用自己定义的功能,完全与Java代码分离 1. tld文 ...

  4. 自定义标签的使用jsp实例_JSP自定义标签示例教程

    自定义标签的使用jsp实例 Today we will look into JSP custom tags. Earlier we learned about JSP Action Elements, ...

  5. jsp + servlet 通过a 标签下载文件

           在开发项目时遇到,在jsp 中通过 a 标签的方式,访问后台servlet,调用 客户端以下载的方式打开文件,遇到中文文件名乱码,找不到问题,导致下载失败问题,弄了很久才弄出点样子,不是 ...

  6. JSP中的taglib标签如何让JSP页面使用标签

    taglib指令的作用是在JSP页面中,将标签库描述符文件引入到该页面中,并设置前缀,而去利用标签的前缀去使用标签库表述文件中的标签. 就用个例子具体说一下步骤. 例如要创建一个自定义标签: < ...

  7. Java虚拟机中的内存模型?JSP常用的动作标签及作用? 如何防止表单重复提交问题? JSP四大作用域及请求范围? 分别说出http,https,ftp,talnet的默认端口?

    文章目录 一 ,Java虚拟机中的内存模型JVM? 1,Java堆 2,方法区 3,Java栈 4,本地方法栈 问题扩展: 二 , JSP常用的动作标签及作用 (1)问题分析: (2)核心答案讲解: ...

  8. jsp页面 用c标签来循环遍历数据库某表中里面的数据 但是页面不显示数据

    控制台也不报错,页面也不显示? 遇到这个情况,第一看jsp页面的c标签写的是否符合正规 我的jsp页面的c标签代码如下:  c标签循环遍历的规范 1.有导入c标签库 <%@taglib uri= ...

  9. JSP GridView --使用自定义标签实现ASP.NET的控件

    JSP用自定义标签实现ASP.net的gridview.datasource组件 第一部分:使用说明 使用过ASP.NET的人都知道,gridview控件功能很强大,使用很方便,提高了开发效率.而且表 ...

最新文章

  1. linux严谨的telnet搭建并用防火墙开通与禁行
  2. Effective Objective-C [下]
  3. iOS:转载:IOS谓词--NSPredicate
  4. 2016ICPC青岛
  5. 各自然带代表植被_植被垂直带谱?水与热之间的较量。
  6. linux系统atom安装教程,Ubuntu/Linux Mint上安装Atom文本编辑器
  7. 【转】Android中Dalvik(DVM)的详解
  8. 10个常用的python可视化工具
  9. FlashCS6安装步骤
  10. cmd 查找文件路径
  11. 在蚂蚁金服工作是一种什么体验
  12. 【问题记录】Win10笔记本电脑禁用自带键盘的方法
  13. CentOS7 快速搭建VNC Server 实现服务器远程控制台访问(Java Viewer)
  14. docx文件转pdf,使用aspose words 转pdf,并且解决表格格式错乱
  15. jvm配置垃圾收集参数
  16. 每周一看:16份文档资料,程序员软硬实力全概览,总有一个适合你
  17. PWM电流源型逆变器
  18. 在本计算机无法启动用友通服务器,用友通客户端连接不上服务器解决方案
  19. APP性能测试_帧率测试
  20. virtualbox中安装xp系统、安装oracle数据库到虚拟机的xp系统中、主机连接oracle、备份xp系统、oracle数据库的一些基本概念(学习oracle数据库的准备工作)-day01

热门文章

  1. 创建WPF单实例应用程序
  2. C#网络编程示例(note)
  3. 索引 | 学堂原创推文汇总-v2
  4. dram和nand哪个难生产_空调哪个牌子好 推荐质量最好又省电的品牌
  5. ceph auth get boostrap-osd_那些某橙色软件都能GET到手的有文凭粗粮 速速前来种草
  6. 码匠编程:零基础自学WEB前端,从第一份工作5K到现在13K,学习经验分享
  7. 学会这6个强大的CSS选择器,将真正帮你写出干净的CSS代码!
  8. Web前端新手必备的知识点,大家都掌握了吗?
  9. 双水泵轮换工作原理图_周宁气压给水设备控制柜原理图
  10. java class文件常量池_《Java虚拟机原理图解》 1.2.3、Class文件中的常量池详解(下)...