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"小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值