`
llflove1988
  • 浏览: 43121 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Logic比较标记

阅读更多
Logic比较标记
在Logic标记库中有以下六个比较标记:

<logic:equal>:判断变量是否与指定的常量相等。
<logic:notEqual>:判断变量是否与指定的常量不相等。
<logic:greaterThan>:判断变量是否大于指定的常量。
<logic:greaterEqual>:判断变量是否大于等于指定的常量。
<logic:lessThan>:判断变量是否小于指定的常量。
<logic:lessEqual>:判断变量是否小于等于指定的常量。
从标记的名称中可以看出它们各自的功能。以下是一个简单的程序小示例:

<%
    pageContext.setAttribute("test1",new Integer(10000));
%>
<logic:equal name="test1" value="10000">
变量test1等于10000。
</logic:equal>

上面的代码首先在pageContext内存入一个整型变量,命名为test1。然后使用<logic:equal>标记把test1变量和常量值 10000进行比较,如果比较值为真,则显示"变量test1等于10000"的字符串。可以看出,在<logic:equal>标记中使用value 属性来指定常量值,使用name属性指定一个已经在某个范围内存在的变量,这个范围可以是pageContext,request等。运行效果如下所示:

变量test1等于10000。
Logic标记库的六个比较标记的属性具有基本相同的含义,如上面提到的value属性,它总是代表一个常量,用来作为比较的参照。以下是几个通用的属性介绍:

header属性:它的值表示HTTP请求中的header信息,以下是一个使用header的例子。

<logic:equal header="host" value="localhost:8080">
主机地址为localhost:8080
</logic:equal>

上面的代码从HTTP请求中读出host信息,与value属性所指定的值进行比较,当相同时同输出"主机地址为localhost:8080"的信息。下面是运行效果:

主机地址为localhost:8080
parameter属性:它的值表示HTTP请求中的请求参数名,以下是一个使用parameter参数的例子。

<html:link page="/logic-compare.jsp?testInt=12345">添加参数</html:link>
<logic:greaterThan parameter="testInt" value="10000">
参数testInt的值比10000大。
</logic:greaterThan>

上面的代码首先设置了一个链接,该链接依然链回相同的页面,只不过在页面后面添加了参数testInt并令其值为12345。接下来使用<logic:greaterThan>标记来判断testInt这个请求参数的值是否大于10000,如若比10000大,则显示"参数testInt的值比10000大" 这样的字符串。其中parameter属性来指定"testInt"这个请求参数。运行效果如下所示,用户首先点击"添加参数"的链接为页面添加参数就可以看到标记的效果了。

添加参数

cookie属性:它的值表示一个cookie的name。以下是一个使用cookie参数的例子。

<%
javax.servlet.http.Cookie newcookie = new javax.servlet.http.Cookie("cookiename","cookievalue");
newcookie.setComment("new Cookie");
newcookie.setMaxAge(3600);
response.addCookie(newcookie);
%>
<logic:equal cookie="cookiename" value="cookievalue">
存入的Cookie的name是cookiename,value是cookievalue。
</logic:equal>

上面的代码首先定义了一个name为"cookiename",value为"cookievalue"的Cookie对象,并将其存入response中。接下来使用 cookie参数来指定该对象,并判断它的值是否为cookievalue。倘若相等,则显示"存入的Cookie的name是cookiename,value是 cookievalue"的字符串。用户第一次访问该页面是,该Cookie不存在,所以并不会显示上述字符串。而需要用户关闭浏览器再次访问时,才可以看到。运行效果如下所示:

存入的Cookie的name是cookiename,value是cookievalue。
name属性:该属性指定一个已经存在于某范围内的变量和value属性所指定的值进行比较。以下是一个例子:

<%
pageContext.setAttribute("test2","aaaab");
%>
<logic:lessThan name="test2" value="aaaac">
字符串"aaaab"比"aaaac"小。
</logic:lessThan>

上面的代码首先在pageContext对象内存入一个字符串"aaaab",并命名为test2。然后使用name属性指定该变量,并将它与字符串 "aaaac"进行比较,如果比它小,则输出相应字符串。以下是运行效果:

字符串"aaaab"比"aaaac"小。
当使用name属性时,如果指定的变量并不是一个字符串,而是一个JavaBean,则还需要一个property属性和其配合使用。该property 属性指定了JavaBean的某个属性,然后将该属性的值与value属性所指定的常量进行比较。如下面的代码:

<%
    TestPageBean testbean = new TestPageBean("testname","testvalue");
    pageContext.setAttribute("test3",testbean);
%>
<logic:lessEqual name="test3" property="name" value="testname">
TestPageBean对象的name属性的值小于等于"testname"。
</logic:lessEqual>

以下是运行效果:

TestPageBean对象的name属性的值小于等于"testname"。
这里有一点值得注意,就是当相比较的两个字符串都可以转化为数字时,则按数字的大小来比较,当无法转成数字时,才按字符串进行比较。以下是一个例子

<%
    pageContext.setAttribute("a1","10000");
%>
<logic:greaterThan name="a1" value="9999.00">
10000比9999.00大
</logic:greaterThan>

<logic:lessThan name="a1" value="9999.00t">
"10000"比"9999.00t"小
</logic:greaterThan>

上面的代码将一个字符串"10000"存入pageContext对象中,然后将其先后与"9999.00"和"9999.00t"两个字符串作比较。可以看出当"10000"与"9999.00"作比较时是将之做为数字来进行的,而与"9999.00t"比较时,因为无法将其转成数字,则按字符串比较。以下是运行效果:

10000比9999.00大
"10000"比"9999.00t"小
分享到:
评论

相关推荐

    Logic Pro 9用户手册中文版

    Logic pro 9是Mac系统顶级的音乐及影视合成制作软件.Logic Pro 可满足专业录音的一切需求。流畅的穿插录音、自动片段管理、创建标记,全部易于执行,也便于撤销。制作两个小时的交响乐,如同制作歌手或歌曲作者的...

    logic-cppm:Saleae Logic 的 CPPM 分析器

    Saleae Logic 的 CPPM 分析器这个插件允许您分析 RC 接收器中常见的 CPPM 流。配置 默认值通常应该有效,但有一些参数可能偶尔会派上用场:PPM 同步时间最小值这是信号保持高(或低)以被分析仪视为帧边界的最小时间...

    论文研究-Annotated Default Logic.pdf

    标记缺省逻辑,林作铨,,在Reiter的缺省逻辑中,一个缺省理论可以有0个或多个扩张,并且有包含一切的平凡扩张。扩张的这些性质表明了缺省逻辑不能用来处理缺省

    Struts常用标签库详解

    本章将重点介绍html tags、bean tags、logic tags的使用。 在写网页程序的时候,通常使用标准的HTML元素。在Struts框架中,定义了Struts HTML标记,用来实现与标准HTML类似的功能。那么,为什么有了标准的HTML标记...

    FlaggedT:一个用于类型级别标记的C ++库

    标记的一个用于类型级别标记的C ++库。 Flagged提供了多个包装器类型,这些包装器类型使您可以在类型级别将属性添加到变量中。 由于操作符重载,包装类型仍然可以用作内部类型。实例,教程# define FLAGGEDT_NO17 //...

    node-logic-filter

    逻辑过滤器是一个转换对象流,它使用任意规则对 JSON 对象流执行过滤,并输出用它们匹配的规则标签标记的对象。 如果一个对象匹配多个规则,它将与每个标签一起输出多次。 #例子 var LogicFilter = require ( '...

    structs程序设计从入门到精通word文档

    14.1 如何使用Logic标签标记来转移控制 16 14.1 在hello.jsp中使用Struts Logic标签库 16 第15章 Tiles标签库 16 15.1 struts中使用tiles组件 16 15.1 Tiles使用入门 16 第3篇 案例精讲 16 第16章 Struts分页显示 16...

    struts标签详解

    Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。 ...Bean 标签: 在访问...Template标签:随着Tiles框架包的出现,此标记已开始减少使用 Nested标签: 增强对其他的Struts 标签的嵌套使用的能力

    struts标签-手册.chm

    Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。... Template 标签 随着Tiles框架包的出现,此标记已开始减少使用 Nested 标签 增强对其他的Struts 标签的嵌套使用的能力

    Programming_Logic:使用JavaScript和HTML进行编程逻辑练习

    •标记:插入para h navegador,como“ h1”,“ a”。 Pode ounãoser fechada。 示例:。 解释:拥有所有权。 例如:h,p等 情报:警察局,警察局,警察局。 例如:DOCTYPE,元字符集等。 •Atributo-示例:...

    SocialCircles-StructureAnalysis:该项目涉及对自我网络的聚类和详细分析,以识别和标记社交圈

    使用Java构造算法编程的第二个模块,该模块对不同样本进行一系列比较,最后根据其结果对圆进行适当标记 欲了解更多详情,请 源代码文件: getAdjacencyMatrix.java-将相互链接作为输入并输出相应的邻接矩阵的程序 ...

    struts+hibernate课件

    b、维护扩展比较方便。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。 c、表现与逻辑分离 d、表单验证解决了请求数据的验证问题,增强了系统健壮性。 e、便于团队开发 ...

    Counting Fluents - LTSA:Counting Fluents 标记的过渡系统分析仪-开源

    ========重要信息========== 可以在以下位置找到新版本:http://countingfluents.weebly.com 此页面将很快更新 ======== ====================== Counting Fluent Linear-Time Temporal Logic (CFLTL) 是 Fl​​uent...

    卢西安学院:自动化卢西安学院

    卢西安学院 使用练习机器人,提交和作业处理使Lucian Academy自动化。 我在SWI-Prolog中编写了算法 combophil_alg_log.pl-帮助记录每个章节文件最多写入多个...la_com_marks.pl-帮助标记分配,由la_com_submit.pl使用

    外文翻译 stus MVC

    There is no flow logic, no business logic, and no model information -- just tags. Tags are one of the things that make Struts unique compared to other frameworks like Velocity. Note: "Think thin" ...

    在ASP.NET 2.0中操作数据之二:创建一个业务逻辑层

    比如说,我们可能不希望产品表中那些被标记为“停用”的产品的“分类编号”或“供应商编号”被更新;我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理。另外一个比较常见的情况就是...

    WJNKCW:高级高层课程

    设计文件夹中包含概述用户界面的标记文件 game_logic文件夹包含游戏的逻辑和负责强化学习游戏的python脚本 入门 设置python虚拟环境 激活环境 python -m venv 克隆存储库 git clone ...

    Mp3Cutter-一款简单易用的,MaterialDesign 风格的mp3剪切小工具.zip

    mp3剪切核心功能使用了jaudiotagger jar包根据时间获取到文件中的数据标记位置。使用说明 gifStep1. 选择mp3文件Step2. 通过滑块选择剪切范围然后点击剪切按钮操作技巧:使用切换按钮切换当前播放的滑块mp3剪切实现...

    oxideous.github.io:斯宾塞-项目1

    ### 15年7月21日开始###功能-布局基本完整-游戏完成直至结束并重置-功能多个套牌,提示和活动标记-如果出现胸围,请检查ace并将其转换为1。 ### Bugs-Have yet to figure out all of the logic for game winning. ...

    人工智能与机器学习简介.pptx

    人工智能发展历史 第一阶段:推理期 1956-1960s: Logic Reasoning 出发点: "数学家真聪明!" 渐渐地,研究者们意识到,仅有逻辑推理能力是不够的 … 第二阶段:知识期(专家系统) 1970s -1980s: Knowledge ...

Global site tag (gtag.js) - Google Analytics