您当前的位置:电脑,基础,教程,源码,下载,信息—问百度开发语言Java → 在线教程内容

JSP函数与对象学习之 <x:if>动作

  • 作者:佚名    来源:不详    发布时间:2007-8-27 14:42:24
  • 字体大小:

<x:if>动作用于表示XML条件判断标记,仅当指定的XPath表达式计算为true时,才计算其动作体,计算结果可以保存为一个作用域变量。<x:if>动作的语法格式如下:

<x:if  select="testXPathExpression" 

    var="varName"  [scope="page|request|session|application"]  />

<x:if  select="testXPathExpression" 

    [var="varName"]  [scope="page|request|session|application"]>

    JSP elements

</x:if>

<x:if>动作共有3个属性,包括select、var和scope。

.1  select属性:指定测试条件

【功能说明】select属性用于指定测试条件表达式,以确定是否执行动作体中的内容。select属性不可以接受动态值。

【实例演示】

<%@  page  contentType="text/html;charset=GB2312"  %>

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

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

<x:parse  var="txl"  scope="application">

    <c:import  url="txl.xml"  charEncoding="GB2312"  />

</x:parse>

<c:set  var="linkmanSex"  value="男"  />

<c:forEach  begin="1"  end="7"  var="linkmanId">

    <x:if  select="$txl/linkmans/linkman[@id=$linkmanId]/sex[. = $linkmanSex]">

        <x:out  select="$txl/linkmans/linkman[@id=$linkmanId]/name"  />的Email地址:

        <x:out  select="$txl/linkmans/linkman[@id=$linkmanId]/email"  /></br>

    </x:if>

</c:forEach>

其中,“$txl/linkmans/linkman[@id=$linkmanId]/sex[. = $linkmanSex]”的含义是,当linkman元素的id等于linkmanId,并且linkman的sex元素等于linkmanSex时才会执行<x:if>动作体中的内容。

示例代码执行后,将显示所有性别为男的联系人的Email地址,执行效果如图9.6所示。

图9.6  使用<x:if>动作的select属性

.2  var属性:指定变量名

【功能说明】var属性用于指定保存测试条件结果的变量名称,其类型为Boolean。var属性不可以接受动态值。

【实例演示】

<%@  page  contentType="text/html;charset=GB2312"  %>

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

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

<x:parse  var="txl"  scope="application">

    <c:import  url="txl.xml"  charEncoding="GB2312"  />

</x:parse>

<c:set  var="linkmanSex"  value="女"  />

<c:forEach  begin="1"  end="7"  var="linkmanId">

    <x:if  var="isFemale"  select="$txl/linkmans/linkman[@id=$linkmanId]/sex[. = $linkmanSex]"  />

    <c:if  test="${isFemale}">

        <x:out  select="$txl/linkmans/linkman[@id=$linkmanId]/name"  />的电话号码:

        <x:out  select="$txl/linkmans/linkman[@id=$linkmanId]/mobile"  /></br>

    </c:if>

</c:forEach>

示例代码的执行效果如图9.7所示。

图9.7  使用<x:if>动作的var属性

.3  scope属性:指定变量作用域

【功能说明】scope属性用于指定变量的作用域范围,如page、request、session和application等。scope属性不可以接受动态值。

【实例演示】

<c:forEach  begin="1"  end="7"  var="linkmanId">

    <x:if  var="isFemale"  scope="session" 

        select="$txl/linkmans/linkman[@id=$linkmanId]/sex[. = $linkmanSex]"  />

    <c:if  test="${isFemale}">

        <x:out  select="$txl/linkmans/linkman[@id=$linkmanId]/name"  />的电话号码:

        <x:out  select="$txl/linkmans/linkman[@id=$linkmanId]/mobile"  /></br>

    </c:if>

</c:forEach>

相关高级JSP教程的学习,我将在以后陆续推出,敬请关注:http://www.itgao.com