bean logic标签两篇文摘

Struts Bean标签库中的标签可以访问已存在的JavaBean以及它们的属性,还可以定义新的Bean,把它存放在page范围内或用户指定的范围内,供网页其他元素访问。Bean标签库大概分为三类:

  • 用于访问HTTP请求信息或JSP隐含对象的Bean标签
  • 用于访问Web应用资源的Bean标签
  • 用于定义或者输出JavaBean的Bean标签

访问HTTP请求信息或JSP隐含对象
  • <bean:cookie>:访问Cookie信息
  • <bean:header>:访问HTTP请求中的Header信息
  • <bean:parameter>;访问请求参数。
  • <bean:page>:访问JSP隐含对象。

1.<bean:cookie>标签

该标签可以检索保存在浏览器中的Cookie,具有属性id,name,multiple,value,id是对cookie在该页面中的唯一标识,在页面其它地方可以通过id进行引用。相当于用cookie直接引用。Name是相应的cookie名称。Multiple可以赋予任意值,如果设置了该属性,可以检索出所有和Cookie名字匹配的Cookie名字匹配的Cookie,此时,id属性定义了一个Cookie数组类型的变量,而不是单个Cookie类型的变量。例如:

<bean:cookie id="myCookie" name="tags/cookiedemo" value="ddddddddd"/>
        <bean:write name="myCookie" property="name"/>
        <bean:write name="myCookie" property="value"/>
<%

      String names=myCookie.getName();
      String value=myCookie.getValue();
      out.println("this cookie name is "+names+",value is "+value+"");

%>

2.<bean:header>标签

该标签用于检索HTTP请求中的Header信息。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。例如:

<logic:present header="User-Agent">
      <!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
      您的浏览器是<bean:header id="userAgent" name="User-Agent"/>
      <bean:write name="userAgent" /><br/>
      <!-- JSP脚本通过scripting变量使用该值 -->
      <%
        out.println("您的浏览器是"+userAgent+"。<br/>");
%>
</logic:present>
     <%
          String id = "userAgent";
          String name = "User-Agent";
          String value = ((HttpServletRequest)pageContext.getRequest()).getHeader(name);
          out.println("============="+value);

      %>

3.<bean:parameter>标签

该标签用于检索HTTP请求参数,具有以下属性:
id属性:定义一个java.lang.String类型的变量,这个变量存放在page范围内。
name属性:指定请求参数名。
value属性:请求指定参数的默认值

如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。例如:

<html:link page="/parameter2.jsptestString=this+is+a+test&testInt=123456">
         请求参数
</html:link>

<bean:parameter id="test1" name="testString" value="" />
       The first test is: <bean:write name="test1" />

<bean:parameter id="test2" name="testInt" value=""/>
       The second test is:<bean:write name="test2"/>

4.<bean:page>标签

该标签用于检索获取JSP隐含对象,如session、request和response等,具有以下属性:
id属性:定义了一个引用隐含对象的变量,这个变量存放在page范围
property属性:指定隐含对象的名字,可选值包括application,config,request,response,session 例如:

<bean:page id="mySession" property="session"/>

<%
      out.println("Session time:"+mySession.getCreationTime());

%>

<bean:message>:显示Resource Bundle中的消息。
<bean:resource>;把Web资源装载到一个JavaBean中。
<bean:struts>;访问Struts的内在配置对象。
<bean:include>;包含一个web资源。

1.<bean:include>标签
该标签用语将其他web资源包含进当前页面中,和标准的JSP标签<jsp:include>很类似,都可以用来包含其他Web资源的内容,区别在于<bean:include>标签把其他的Web资源的内容存放在一个对象中,而不是直接显示到网页,<bean:include>标签的id属性定义一个代表其他Web资源的变量。
<bean:include id="value" page="/index.jsp"/>      //在当前资源中
<bean:write name="value" filter="false"/><br/>
// filter为true则为原文件
<%
      out.println(value);
%>
2.<bean:message>标签
该标签用与显示资源文件中的消息文本。该标签有一个bundle属性,它和struts-config.xml文件中的messsge-resources标记内的key属性对应。
<message-resources parameter="com.resources" key="beanmessage">
//struts-config
message1=this is a test!
message2=this is a test too!
//resource中
<bean:message bundle="beanmessage" key="message1"/>
//jsp中
3.<bean:resource>标签
该标签用于检索、获得Web资源内容,如:网页的源代码。该标签的属性有:id有其他标签一样,name指定Web资源的路径,input如果没有设置,则id属性默认为一个字符类型对象,如果给input赋值yes,则id属性所定义的对象为java.IputStream。例如:
  
     <bean:resource id="indexpage" name="/index.jsp" input="yes"/>
     <bean:write name="indexpage" filter="false"/>
4.<bean:struts>标签
该标签用于获取Struts框架内的一些对象,如AationForm和ActionForward等。。<bean:struts>标签的id属性定义一个page范围的变量,用来引用Struts框架的内在对象,必需设置formbean,forward,mapping属性中的一个属性,来指定被引用的Struts内在对象。
formbean属性:指定ActionFormBean对象,和struts配置文件的<form-bean>元素匹配。
forward属性;指定ActionForward对象,和配置文件的<global-forwards>元素的<forward>子元素匹配。
mapping属性:指定ActionMapping对象,和配置文件的<action>元素匹配
例如:
<bean:struts id="listFormBean" formBean="listForm"/>
name:<bean:write name="listFormBean" property="name"/><br/>
type:<bean:write name="listFormBean" property="type"/><br/>
dynamic:<bean:write name="listFormBean" property="dynamic"/><br/>


<bean:define>:用于定义一个变量。
<bean:write>: 显示JavaBean属性的内容。
<bean:size>: 获得集合对象或数组对象的长度。
1.<bean:define>标签

该标签用于定义一个变量,id属性指定变量的名字,toScope属性指定这个变量的存放范围,如果没有设置,则这个变量存放在page范围内,给id属性定义的变量赋值有三种方式:
第一种是,通过value属性直接赋值;
第二种是,通过name和porperty共同指定一个变量来给id所定义的变量,name——bean,porperty——属性;
第三种是,通过type属性和name联合指定id所定义的变量类型,type——id定义变量的完整类型,name——存在的javaBean。例如:
     <bean:define id="string" value="this is a test"/>
     <bean:write name="string"/>--%>
<%
     Date d = new Date();
     pageContext.setAttribute("currDate",d);
%>
<bean:define id="milliseconds" name="currDate" property="time"/>
当前时间距离1970年1月1日的毫秒数为:<bean:write name="milliseconds"/>
2.<bean:size>标签

该标签用于获取集合或者数组的长度。
id属性定义一个Integer类型的变量,那么属性指定已经存在的Map,Collection或数组变量,id属性定义的变量值为Map,collection或数组的长度。
name属性为对象名字。例如:
   
      <%
ArrayList testlist=new ArrayList();
testlist.add(new Integer(1));
testlist.add(new Integer(2));
testlist.add(new Integer(3));
      pageContext.setAttribute("listforcount",testlist);
      %>
        <bean:size id="size" name="listforcount"/>
        长度为:<bean:write name="size"/>
3.<bean:write>标签

该标签用于输出各种类型的对象,有点类似与System.out.println()。例如:
<%
String a = "string for test";
pageContext.setAttribute("test",a);
%>
<bean:write name="test"/>
 
  1. 标签logic的示例用法。
  2. LogicCompare.jsp
  3. <%@ page language="java" %>
  4. <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  5. <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  6. <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  7. <%@ page import="logictaglibs.SomeBean" %>
  8. <html:html>
  9. <head>
  10. <title>Logic Compare sample code</title>
  11. </head>
  12. <body bgcolor="white">
  13. <h3>Logic Compare sample code</h3>
  14. <p>This page provides examples of the following Struts LOGIC tags:<br>
  15. <ul>
  16.   <li><logic:equal></li>
  17.   <li><logic:lessEqual></li>
  18.   <li><logic:lessThan></li>
  19.   <li><logic:greaterEqual></li>
  20.   <li><logic:greaterThan></li>
  21.   <li><logic:notEqual></li>
  22. </ul>
  23.  <%
  24.          Cookie c = new Cookie("username""Linda");
  25.          c.setComment("A test cookie");
  26.          c.setMaxAge(3600); //60 seconds times 60 minutes
  27.          response.addCookie(c);
  28.  %>
  29. <logic:equal cookie="username" value="Linda" >
  30.         UserName in Cookie is Linda <p>
  31. </logic:equal>
  32. <logic:equal header="Accept-Language" value="zh-cn" >
  33.         Client?¡¥s language is: zh-cn. <p>
  34. </logic:equal>
  35. <logic:greaterThan parameter="arg1" value="100" >
  36.         The first request parameter is greater than 100 <p>
  37. </logic:greaterThan >
  38. <% 
  39.         request.setAttribute("intBean",new Integer(100));
  40. %>
  41. <logic:equal name="intBean" value="100" >
  42.         The value of intBean is "100".<p> 
  43. </logic:equal >
  44. <% 
  45.         SomeBean bean=new SomeBean();
  46.         bean.setName("Linda");
  47.         request.setAttribute("someBean",bean);
  48. %>
  49. <logic:notEqual name="someBean" property="name" value="Tom" >
  50.         The name of someBean is not "Tom" <p>
  51. </logic:notEqual >
  52. <% request.setAttribute("number","100"); %>
  53. <logic:equal name="number" value="100.0" >
  54.         "100" equals "100.0" <p>
  55. </logic:equal >
  56. <logic:lessThan name="number" value="100.0a" >
  57.         "100" is less than "100.0a" <p>
  58. </logic:lessThan >
  59. </body>
  60. </html:html>
  61. LogicForward.jsp
  62. <%@ page language="java" %>
  63. <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  64. <html:html>
  65. <head>
  66. <title>Logic Forward sample code</title>
  67. </head>
  68. <body bgcolor="white">
  69. <logic:forward name="index"/>
  70. </body>
  71. </html:html>
  72. LogicIterate.jsp
  73. <%@ page language="java" %>
  74. <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  75. <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  76. <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  77. <%@ page import="java.util.HashMap" %>
  78. <%@ page import="java.util.Vector" %>
  79. <html:html>
  80. <head>
  81. <title>Logic Iterate sample code</title>
  82. </head>
  83. <body bgcolor="white">
  84. <h3>Logic Iterate sample code</h3>
  85. <p>This page provides examples of the following Struts LOGIC tags:<br>
  86. <ul>
  87. <li><logic:iterate></li>
  88. </ul>
  89. <table border="1">
  90. <tr>
  91. <td>
  92. <%--
  93. Variables used on this page
  94. --%>
  95. <%
  96. HashMap months = new HashMap();
  97. months.put("Jan.""January");
  98. months.put("Feb.""February");
  99. months.put("Mar.""March");
  100. request.setAttribute("months", months);
  101. %>
  102. <%--
  103. The following section shows iterate.
  104. --%>
  105. <logic:iterate id="element" indexId="ind" name="months">
  106.   <bean:write name="ind"/>. 
  107.   <bean:write name="element" property="key"/>:
  108.   <bean:write name="element" property="value"/><BR>
  109. </logic:iterate><P>
  110. </td>
  111. <td>
  112. <%
  113. HashMap h = new HashMap();
  114. String vegetables[] = {"pepper""cucumber"};
  115. String fruits[] = {"apple","orange","banana","cherry","watermelon"};
  116. String flowers[] = {"chrysanthemum","rose"};
  117. String trees[]={"willow"};
  118. h.put("Vegetables", vegetables);
  119. h.put("Fruits", fruits);
  120. h.put("Flowers", flowers);
  121. h.put("Trees",trees);
  122. request.setAttribute("catalog", h);
  123. %>
  124. <%--
  125. The following section shows iterate.
  126. --%>
  127. <logic:iterate id="element" indexId="ind" name="catalog">
  128.   <bean:write name="ind"/>. <bean:write name="element" property="key"/><BR>
  129.   <logic:iterate id="elementValue" name="element" property="value" >
  130.       -----<bean:write name="elementValue"/><BR>
  131.   </logic:iterate>
  132. </logic:iterate><P>
  133. </td>
  134. <td>
  135. <%
  136.  Vector animals=new Vector();
  137.  animals.addElement("Dog");
  138.  animals.addElement("Cat");
  139.  animals.addElement("Bird");
  140.  animals.addElement("Chick");
  141.  request.setAttribute("Animals", animals);
  142. %>
  143. <logic:iterate id="element" name="Animals">
  144.    <bean:write name="element"/><BR>
  145. </logic:iterate><p>
  146. </td>
  147. <td>
  148. <logic:iterate id="element" indexId="index" name="Animals" offset="1" length="2">
  149.    <bean:write name="index"/>.<bean:write name="element"/><BR>
  150. </logic:iterate><p>
  151. </td>
  152. <td>
  153. <logic:iterate id="header" collection="<%= request.getHeaderNames() %>">
  154.    <bean:write name="header"/><BR>
  155. </logic:iterate>
  156. </td>
  157. </tr>
  158. <table>
  159. </body>
  160. </html:html>
  161. LogicMatch.jsp
  162. <%@ page language="java" %>
  163. <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  164. <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  165. <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  166. <%@ page import="java.util.Enumeration" %>
  167. <html:html>
  168. <head>
  169. <title>Logic Match sample code</title>
  170. </head>
  171. <body bgcolor="white">
  172. <h3>Logic Match sample code</h3>
  173. <p>This page provides examples of the following Struts LOGIC tags:<br>
  174. <ul>
  175. <li><logic:match></li>
  176. <li><logic:notMatch></li>
  177. </ul>
  178. <%--
  179. Variables used on this page
  180. --%>
  181. <%
  182.   request.setAttribute("authorName""LindaSun");
  183. %>
  184. <%--
  185. The following section shows match and notMatch.
  186. --%>
  187. <logic:match name="authorName" scope="request" value="Linda">
  188.    <bean:write name="authorName"/> has the string 'Sun' in it.
  189. </logic:match>
  190. <logic:notMatch name="authorName" scope="request" value="Linda">
  191.    <bean:write name="authorName"/> doesn't have the string 'Linda' in it.
  192. </logic:notMatch>
  193. <BR>
  194. <logic:match name="authorName" scope="request" value="Linda" location="start">
  195.    <bean:write name="authorName"/> starts with the string 'Linda'.
  196. </logic:match>
  197. <logic:notMatch name="authorName" scope="request" value="Linda" location="start">
  198.    <bean:write name="authorName"/> doesn't start with the string 'Linda'.
  199. </logic:notMatch>
  200. <BR>
  201. <logic:match header="user-agent" value="Windows">
  202.    You're running Windows
  203. </logic:match>
  204. <logic:notMatch header="user-agent" value="Windows">
  205.    You're not running Windows
  206. </logic:notMatch>
  207. <BR>
  208. </body>
  209. </html:html>
  210. LogicPresence.jsp
  211. <%@ page language="java" %>
  212. <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  213. <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  214. <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  215. <%@ page import="java.util.HashMap" %>
  216. <%@ page import="org.apache.struts.Globals" %>
  217. <%@ page import="org.apache.struts.action.ActionMessage" %>
  218. <%@ page import="org.apache.struts.action.ActionErrors" %>
  219. <html:html>
  220. <head>
  221. <title>Logic Presence sample code</title>
  222. </head>
  223. <body bgcolor="white">
  224. <h3>Logic Presence sample code</h3>
  225. <p>This page provides examples of the following Struts LOGIC tags:<br>
  226. <ul>
  227. <li><logic:empty></li>
  228. <li><logic:messagesPresent></li>
  229. <li><logic:messagesNotPresent></li>
  230. <li><logic:notEmpty></li>
  231. <li><logic:notPresent></li>
  232. <li><logic:present></li>
  233. </ul>
  234. <%--
  235. Variables used on this page
  236. --%>
  237. <%
  238. ActionErrors errors = new ActionErrors();
  239. errors.add("totallylost"new ActionMessage("application.totally.lost"));
  240. request.setAttribute(Globals.ERROR_KEY, errors);
  241. request.setAttribute("myerrors", errors);
  242. request.setAttribute("emptyString""");
  243. %>
  244. <%--
  245. The following section shows empty and notEmpty.
  246. --%>
  247. <logic:empty name="emptyString">
  248.    The variable named emptyString is empty!<P>
  249. </logic:empty>
  250. <logic:notEmpty name="emptyString">
  251.     The variable named emptyString is not empty!<P>
  252. </logic:notEmpty>
  253. <P>
  254. <%--
  255. The following section shows present and notPresent.
  256. --%>
  257. <logic:present name="noSuchBean" property="noSuchProperty">
  258.    Both noSuchBean and noSuchProperty exist!
  259. </logic:present>
  260. <logic:notPresent name="noSuchBean" property="noSuchProperty">
  261.    Either noSuchBean or noSuchProperty does not exist!
  262. </logic:notPresent>
  263. <P>
  264. <logic:present name="emptyString" >
  265.    There is a JavaBean named "emptyString". <p>
  266. </logic:present>
  267. <logic:notPresent name="emptyString" property="noSuchProperty">
  268.    EmptyString doesn't have such a property named "noSuchProperty".
  269. </logic:notPresent>
  270. <P>
  271. <logic:present header="user-agent">
  272.    Yep, we got a user-agent header.
  273. </logic:present>
  274. <logic:notPresent header="user-agent">
  275.    No, user-agent header does not exist.
  276. </logic:notPresent>
  277. <P>
  278. <%--
  279. The following section shows messagesPresent and messagesNotPresent.
  280. --%>
  281. <logic:messagesPresent>
  282.    Yes, there are errors.
  283. </logic:messagesPresent><P>
  284. <logic:messagesPresent name="myerrors">
  285.    Yes, there are errors in myerrors collection.
  286. </logic:messagesPresent><P>
  287. <logic:messagesNotPresent message="true" >
  288.   There are no normal messages.
  289. </logic:messagesNotPresent><P>
  290. <logic:messagesNotPresent property="noSuchError">
  291.    There is no error named "SuchError".
  292. </logic:messagesNotPresent><P>
  293. <logic:messagesPresent property="totallylost">
  294.    There is an error named "totallylost".
  295. </logic:messagesPresent>
  296. </body>
  297. </html:html>
  298. LogicRedirect.jsp
  299. <%@ page language="java" %>
  300. <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
  301. <html:html>
  302. <head>
  303. <title>Logic Redirect sample code</title>
  304. </head>
  305. <body bgcolor="white">
  306. <logic:redirect href="http://www.apache.org"/>
  307. </body>
  308. </html:html>
  309. package logictaglibs;
  310. public class SomeBean{
  311.  public SomeBean(){}
  312.  private String name;
  313.  public void setName(String name){this.name=name;}
  314.  public String getName(){return this.name;}
  315. }
posted @ 2012-05-03 22:38  sunnyleer  阅读(249)  评论(0编辑  收藏  举报