jstl标签详解.docx

上传人:b****4 文档编号:24296667 上传时间:2023-05-26 格式:DOCX 页数:56 大小:48.32KB
下载 相关 举报
jstl标签详解.docx_第1页
第1页 / 共56页
jstl标签详解.docx_第2页
第2页 / 共56页
jstl标签详解.docx_第3页
第3页 / 共56页
jstl标签详解.docx_第4页
第4页 / 共56页
jstl标签详解.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

jstl标签详解.docx

《jstl标签详解.docx》由会员分享,可在线阅读,更多相关《jstl标签详解.docx(56页珍藏版)》请在冰豆网上搜索。

jstl标签详解.docx

jstl标签详解

Struts2标签详解

详细的说明了struts2所有标签

由web-整理

版权属web-以及原作者。

由于标签太多难做目录索引,如果你觉得有目录索引更好,请到下载CHM版本的Struts2标签详解,谢谢。

 catch 

库:

Core(核心库)

URI:

前缀:

描述:

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:

前缀:

描述:

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:

前缀:

描述:

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综合实例

Example3奇偶行样式

forEach items="${model.page.list}" var="observer" varStatus="loop"> 

  

    迭代observer

    迭代observer

    ...

  

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:

前缀:

描述:

标签可以根据某个分隔符分隔指定字符串,相当于 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

最后一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1