jstl标签详解.docx
- 文档编号:24296667
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:56
- 大小:48.32KB
jstl标签详解.docx
《jstl标签详解.docx》由会员分享,可在线阅读,更多相关《jstl标签详解.docx(56页珍藏版)》请在冰豆网上搜索。
jstl标签详解
Struts2标签详解
详细的说明了struts2所有标签
由web-整理
版权属web-以及原作者。
由于标签太多难做目录索引,如果你觉得有目录索引更好,请到下载CHM版本的Struts2标签详解,谢谢。
catch
库:
Core(核心库)
URI:
前缀:
c
描述:
catch>动作用于捕获JSP元素在其体中抛出的异常,从而提供细粒度的错误控制, 此异常也可以保存为一个页面作用域变量。 当错误发生 catch>和 catch>之间时,只有 catch>和 catch>之间的程序会被中止忽略,但整个网页不会被中止。 它包含一个var属性,是一个描述异常的变量,该变量可选。 若没有var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了var属性,则可以利用var所定义的异常变量进行判断转发到其他页面或提示报错信息。 语法: catch [var="var"]> //可能发生错误的部分 JSP elements catch> 属性: 属性名 描述 类型 是否接受动态值 是否支持EL 是否必须 默认值 说明 var 变量名 String N N N 无 用来存储错误信息的变量 实例: ------------------------------------------------------------------------------------------------------------------------------------------ Example1 catch var="importException"> parseDate value="${param.empDate}" dateStyle="short" /> catch> if test="${importException ! = null}"> forward page="input.jsp"> param name="msg" value="Invalid date format" /> forward> if> ------------------------------------------------------------------------------------------------------------------------------------------ Example2 catch var="err"> ${param.sampleSingleValue[9] == 3} catch> ${err} 当“${param.sampleSingleValue[9] == 3}”表达式有异常时,可以从var属性“err”得到异常的内容,通常判断“err”是否为null来决定错误信息的提示。 choose 库: Core(核心库) URI: 前缀: c 描述: choose>动作用于控制嵌套 when>和 otherwise>动作的处理,它只允许第一个测试表达式计算为true的 when>动作得到处理;如果所有 when>动作的测试表达式都计算为false,则会处理一个 otherwise>动作。 choose>标签没有属性,可以被认为是父标签, when>、 otherwise>将作为其子标签来使用。 语法: choose> body( choose> 限制: choose>的本地内容只能有: .空白 .1或多个 when> .0或多个 otherwise> 属性: 无 实例: ---------------------------------------------------------------------------------------------------------------------------------------- Example1 choose> when test="${product.onSale}"> ${product.salesPrice} On sale! when> otherwise> ${product.price} otherwise> choose> Example2 choose> when test="${condition1}"> condition1 为 true when> when test="${condition2}"> condition2 为 true when> otherwise> condition1和conditon2都为false otherwise > choose> 说明: 在同一个 choose>中,假如所有的 when>的test都不为true时,则执行 otherwise>的本体内容。 在同一个 choose>中,假若有好几个 when>都会true时,只能有一个 when>成立。 forEach 库 : Core(核心库) URI: 前缀: c 描述: forEach>动作将其体反复计算固定次数,或者针对一个集合中的每个元素分别计算一次体。 当前元素(如果未指定集合则为当前索引)和迭代状态可以通过嵌套变量提供给体中的动作元素。 此动作接受属性表中所列的类型集合。 当前元素的类型即为底层集合的类型,仅有两个例外。 对于一个基本类型的数组,当前元素将作为相应包装类(Integer、Float等等)的一个实例提供。 对于一个java.util.Map,当前元素则作为一个java.util.Map.Entry提供。 语法: 语法1: 基于集合元素进行迭代 forEach items="collection" [var="var"] [varStatus="varStatus"][begin="startIndex"] [end="stopIndex"] [step="increment"]> JSP elements forEach> 语法2: 迭代固定次数 forEach [var="var"] [varStatus="varStatus"] begin="startIndex" end="stopIndex" [step="increment"]> JSP elements forEach> 属性: 属性名 描述 类型 是否接受动态值 是否支持EL 是否必须 默认值 说明 begin 开始位置 int Y Y 否 0 结合集合使用时的开始索引,从0计起。 对于集合来说默认为0 end 结束位置 int Y Y 否 最后一个成员 结合集合使用时的结束索引(元素引要小于等于此结束索引),从0计起。 默认为集合的最后一个元素。 如果end小于begin,则根本不计算体集合,迭代即要针对此集合进行。 items 被迭代的集合对象 Collection, Iterator, Enumeration,Map,数组 Y Y 否 无 集合,迭代即要针对此集合进行。 step 步长 int Y Y 1 每次迭代时索引的递增值。 默认为1。 var 当前项目 String N N 否 无 保存当前元素的嵌套变量的名字。 varStatus 循环状态 String N N 否 无 保存LoopTagStatus对象的嵌套变量的名字。 Null 和 错误处理 .假若items为null时,则表示为一空的集合对象 .假若begin大于或等于items时,则迭代不运算 注意: varName的范围只存在 forEach>的本体中,如果超出了本题,则不能取得varName的值。 如: forEach items="${atts}" var="item"> forEach> ${item} ${item}则不会显示item的内容。 forEach>除了支持数组之外,还有标准的J2SE的结合类型,例如: ArrayList,List,LinkedList,Vector,Stack和Set等等;另外包括java.util.Map类的对象,例如: HashMap,Hashtable,Properties,Provider和Attributes。 另外 forEach>还提供了varStatus属性,主要用来存放现在指到成员的相关信息。 例如: 我们写成varStatus="s",那么就会把信息存放到名称为s的属性当中。 varStatus属性还提供另外四个属性: index、count、fist和last,它们个自的意义如下: 属性 类型 意义 index number 现在指到成员的索引 count number 总共指到成员的总和 first boolean 现在指到成员是否为第一个 last boolean 现在指到成员是否为最后一个 实例: -------------------------------------------------------------------------------------------------------------------Example1 <%@page contentType="text/html;charset=gb2312"%> <%@taglib prefix="c" uri="> <% String atts[] = new String[5]; atts[0]="hello"; atts[1]="this"; atts[2]="is"; atts[3]="a"; atts[4]="girl"; request.setAttritue("atts",atts); %> forEach items="${atts}" var="item" varStatus="s"> out value="${item}"/>的四种属性> index: ${s.index} count: ${s.count} first: ${s.first} last: ${s.last} forEach> ---------------------------------------------------------------------------------------------------------------------- Example2综合实例 forEach items="${model.options}"var="forum"> choose> whentest="${forum.id == model.forumId}"> when> otherwise> otherwise> choose> forEach> Example3奇偶行样式 forEach items="${model.page.list}" var="observer" varStatus="loop"> ... forEach> Example4分页条1 setvar="page" value="${model.page}"> set> page (1)" class="gr_pages">首页 if test="${page.currentPage>1}"> page( outvalue="${page.currentPage-1}"/>)"class="gr_pages">上页 if> iftest="${page.currentPage page( outvalue="${page.currentPage+1}"/>)"class="gr_pages">下页 if> page( outvalue="${page.totalPage}"default="1"/>)"class="gr_pages">末页 当前第 outvalue="${page.currentPage}"/>/ outvalue="${page.totalPage}"/>页 Example5分页条2 method=listVote¤tPage=1&subareaCode=${param.subareaCode}"class="gr_pages">首页 iftest="${page.currentPage>1}"> method=listVote¤tPage=${page.currentPage-1}&subareaCode=${param.subareaCode}"class="gr_pages">前页 if> method=listVote¤tPage=${page.currentPage}&subareaCode=${param.subareaCode}"> outvalue="${page.currentPage}"/> iftest="${page.currentPage+1<=page.totalPage}"> method=listVote¤tPage=${page.currentPage+1}&subareaCode=${param.subareaCode}"> outvalue="${page.currentPage+1}"/> if> iftest="${page.currentPage+2<=page.totalPage}"> method=listVote¤tPage=${page.currentPage+2}&subareaCode=${param.subareaCode}"> outvalue="${page.currentPage+2}"/> if> iftest="${page.currentPage+3<=page.totalPage}"> method=listVote¤tPage=${page.currentPage+3}&subareaCode=${param.subareaCode}"> outvalue="${page.currentPage+3}"/> if> iftest="${page.currentPage method=listVote¤tPage=${page.currentPage+1}&subareaCode=${param.subareaCode}"class="gr_pages">后页 if> method=listVote¤tPage=${page.totalPage}&subareaCode=${param.subareaCode}"class="gr_pages">末页 当前第 outvalue="${page.currentPage}"/>/ outvalue="${page.totalPage}"/>页 Example6综合实例 <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ taglib prefix="c" uri=" %> <% Map map = new HashMap(); map.put("a", "12345"); map.put("b", "abcde"); out.println(map.get("a")); request.setAttribute("map",map); %> -- 完全迭代 --> forEach items="${map}" var="mymap" > out value="${mymap.key}" /> out value="${mymap.value}" /> forEach> -- 根据map的key来找到特定的值 --> forEach items="${map}" var="mymap"> if test="${mymap.key=='a'}"> out value="${mymap.value}"/> if> forEach> forTokens 库: Core(核心库) URI: 前缀: c 描述: 标签可以根据某个分隔符分隔指定字符串,相当于 java.util.StringTokenizer类。 语法: forTokens items="stringFoTokens" delims="delimmmmiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> ...body内容.... forTokens> 属性: 属性名 描述 类型 是否接受动态值 是否支持EL 是否必须 默认值 说明 var 变量名 String false Y 否 无 用来存放现在指到的成员 items 被迭代的字符串 String true Y 是 无 被迭代的字符串 delims 分隔符 String true N 是 无 定义用来分割字符串的字符 varStatus 循环状态变量 String false N 否 无 用来存放现在指到的相关成员信息 begin 开始条件 int true Y 否 0 开始的位置 end 结束条件 int true Y 否 最后一迭代observer 迭代observer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jstl 标签 详解