logic:iterate(2)

  1. Logic比较标记
  2. 在Logic标记库中有以下六个比较标记:
  3. <logic:equal>:判断变量是否与指定的常量相等。
  4. <logic:notEqual>:判断变量是否与指定的常量不相等。
  5. <logic:greaterThan>:判断变量是否大于指定的常量。
  6. <logic:greaterEqual>:判断变量是否大于等于指定的常量。
  7. <logic:lessThan>:判断变量是否小于指定的常量。
  8. <logic:lessEqual>:判断变量是否小于等于指定的常量。
  9. 从标记的名称中可以看出它们各自的功能。以下是一个简单的程序小示例:
  10. <%
  11. pageContext.setAttribute("test1",newInteger(10000));
  12. %>
  13. <logic:equalname="test1"value="10000">
  14. 变量test1等于10000。
  15. </logic:equal>
  16. 上面的代码首先在pageContext内存入一个整型变量,命名为test1。然后使用<logic:equal>标记把test1变量和常量值10000进行比较,如果比较值为真,则显示"变量test1等于10000"的字符串。可以看出,在<logic:equal>标记中使用value属性来指定常量值,使用name属性指定一个已经在某个范围内存在的变量,这个范围可以是pageContext,request等。运行效果如下所示:
  17. 变量test1等于10000。
  18. Logic标记库的六个比较标记的属性具有基本相同的含义,如上面提到的value属性,它总是代表一个常量,用来作为比较的参照。以下是几个通用的属性介绍:
  19. header属性:它的值表示HTTP请求中的header信息,以下是一个使用header的例子。
  20. <logic:equalheader="host"value="localhost:8080">
  21. 主机地址为localhost:8080
  22. </logic:equal>
  23. 上面的代码从HTTP请求中读出host信息,与value属性所指定的值进行比较,当相同时同输出"主机地址为localhost:8080"的信息。下面是运行效果:
  24. 主机地址为localhost:8080
  25. parameter属性:它的值表示HTTP请求中的请求参数名,以下是一个使用parameter参数的例子。
  26. <html:linkpage="/logic-compare.jsp?testInt=12345">添加参数</html:link>
  27. <logic:greaterThanparameter="testInt"value="10000">
  28. 参数testInt的值比10000大。
  29. </logic:greaterThan>
  30. 上面的代码首先设置了一个链接,该链接依然链回相同的页面,只不过在页面后面添加了参数testInt并令其值为12345。接下来使用<logic:greaterThan>标记来判断testInt这个请求参数的值是否大于10000,如若比10000大,则显示"参数testInt的值比10000大"这样的字符串。其中parameter属性来指定"testInt"这个请求参数。运行效果如下所示,用户首先点击"添加参数"的链接为页面添加参数就可以看到标记的效果了。
  31. 添加参数
  32. 参数testInt的值比10000大。
  33. cookie属性:它的值表示一个cookie的name。以下是一个使用cookie参数的例子。
  34. <%
  35. javax.servlet.http.Cookienewcookie=newjavax.servlet.http.Cookie("cookiename","cookievalue");
  36. newcookie.setComment("newCookie");
  37. newcookie.setMaxAge(3600);
  38. response.addCookie(newcookie);
  39. %>
  40. <logic:equalcookie="cookiename"value="cookievalue">
  41. 存入的Cookie的name是cookiename,value是cookievalue。
  42. </logic:equal>
  43. 上面的代码首先定义了一个name为"cookiename",value为"cookievalue"的Cookie对象,并将其存入response中。接下来使用cookie参数来指定该对象,并判断它的值是否为cookievalue。倘若相等,则显示"存入的Cookie的name是cookiename,value是cookievalue"的字符串。用户第一次访问该页面是,该Cookie不存在,所以并不会显示上述字符串。而需要用户关闭浏览器再次访问时,才可以看到。运行效果如下所示:
  44. 存入的Cookie的name是cookiename,value是cookievalue。
  45. name属性:该属性指定一个已经存在于某范围内的变量和value属性所指定的值进行比较。以下是一个例子:
  46. <%
  47. pageContext.setAttribute("test2","aaaab");
  48. %>
  49. <logic:lessThanname="test2"value="aaaac">
  50. 字符串"aaaab""aaaac"小。
  51. </logic:lessThan>
  52. 上面的代码首先在pageContext对象内存入一个字符串"aaaab",并命名为test2。然后使用name属性指定该变量,并将它与字符串"aaaac"进行比较,如果比它小,则输出相应字符串。以下是运行效果:
  53. 字符串"aaaab""aaaac"小。
  54. 当使用name属性时,如果指定的变量并不是一个字符串,而是一个JavaBean,则还需要一个property属性和其配合使用。该property属性指定了JavaBean的某个属性,然后将该属性的值与value属性所指定的常量进行比较。如下面的代码:
  55. <%
  56. TestPageBeantestbean=newTestPageBean("testname","testvalue");
  57. pageContext.setAttribute("test3",testbean);
  58. %>
  59. <logic:lessEqualname="test3"property="name"value="testname">
  60. TestPageBean对象的name属性的值小于等于"testname"
  61. </logic:lessEqual>
  62. 以下是运行效果:
  63. TestPageBean对象的name属性的值小于等于"testname"
  64. 这里有一点值得注意,就是当相比较的两个字符串都可以转化为数字时,则按数字的大小来比较,当无法转成数字时,才按字符串进行比较。以下是一个例子
  65. <%
  66. pageContext.setAttribute("a1","10000");
  67. %>
  68. <logic:greaterThanname="a1"value="9999.00">
  69. 10000比9999.00大
  70. </logic:greaterThan>
  71. <logic:lessThanname="a1"value="9999.00t">
  72. "10000""9999.00t"
  73. </logic:greaterThan>
  74. 上面的代码将一个字符串"10000"存入pageContext对象中,然后将其先后与"9999.00""9999.00t"两个字符串作比较。可以看出当"10000""9999.00"作比较时是将之做为数字来进行的,而与"9999.00t"比较时,因为无法将其转成数字,则按字符串比较。以下是运行效果:
  75. 10000比9999.00大
  76. "10000""9999.00t"

你可能感兴趣的:(iterate)