Logic标签

发布时间:2016-12-9 19:42:20 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Logic标签",主要涉及到Logic标签方面的内容,对于Logic标签感兴趣的同学可以参考一下。

Logic 标签库         此标签库可以分为三种类型:条件、循环、转发/重定向。 一.) 条件类型 1. logic:empty和logic:notEmptylogic:empty标签判断脚本变量是否为null,是否是一个空的字符串(长度为0),是否是一个空的collection或map(调用isEmpty()方法来判断)。logic:notEmpty标签类似。  <logic:empty name="myBean">   The bean is missing </logic:empty> <logic:notEmpty name="myBean">   The bean is not missing </logic:notEmpty>  2. 上段代码表示当一个名为myBean的bean在所有的scope中都不存在时,输出The bean is missing;存在的话输出The bean is not missing。此标签有三个属性:name、property和scope。 3. logic:equal, logic:notEqual, logic:lessThan, logic:greaterThan,logic:lessEqual, and logic:greaterEqual这堆logic:*equal*标签从名字上就能知道意思,它们使用起来有些笨拙。有如下属性:name、property、scope、value、cookie、header、parameter。  <logic:equal name="bean" property="doubleProperty" value="<%= doub1 %>">    equal </logic:equal> <logic:greaterEqual name="bean" property="doubleProperty" value="<%= doub1 %>">    greaterEqual </logic:greaterEqual>   4.  5. logic:present和logic:notPresent检查header、request parameter、cookie、JavaBean或JavaBean propertie是否存在且不等于null。另外还可以检查当前用户的身份,使用属性user和role。其它的属性有:name、property、scope、cookie、header、parameter。  <logic:notPresent name="myBean"  property="prop"  scope="page"> The bean property bean.prop is present </logic:notPresent>  6. 上段代码检查在page作用域内名为myBean的bean是否有一个prop属性。 7. logic:match和logic:notMatch比较两字符串是否相等,可以比较字符串的开始的、结尾的或其中的某个部分。location属性:指定从某个位置开始进行比较。其它的属性有:name、property、scope、value、cookie、header、parameter。下面的例子是检查浏览器类型:  <logic:match header="User-Agent" value="Mozilla">  Mozilla! </logic:match> <logic:notMatch header="User-Agent" value="Mozilla">  Not Mozilla :( </logic:notMatch>  8. 检查bean属性是否匹配"hello world"字符串:  <logic:match name="bean" property="stringProperty" value="hello world">  Hello World! </logic:match> <logic:notMatch name="bean" property="stringProperty" value="hello world">  I'm so sad and lonely. </logic:notMatch>   9. 检查名为"name"的请求参数是否是"xyz"的子字符串,但是子字符串必须从"xyz"的索引位置1开始(也就是说子字符串必须是"y"或"yz"):  <logic:match parameter="name"  value="xyz"  location="1">      The parameter name is a sub-string of the string xyz from index 1 </logic:match>  二.) 循环类型 logic:iterate重复嵌套在此标签体内的指定集合的元素,集合必须为如下类型:array 、Collection(包括ArrayList和Vector)、Enumeration、Iterator、Map(包括HashMap、Hashtable和TreeMap)。例如:  <logic:iterate id="employee" name="department" property="employees" scope= "request">… <bean:write name="employee" property="username" />… <bean:write name="employee" property="name" />… <bean:write name="employee" property="phone" />… </logic:iterate>   上面的代码迭代了一个employee的集合,是department属性employees的一个集合,作用域为request。 为了输出第五个到第十个employee,需要使用length和offset属性:  <logic:iterate id="employee" name="department" property="employees" scope= "request" length="10" offset="5">… <bean:write name="employee" property="username" />… <bean:write name="employee" property="name" />… <bean:write name="employee" property="phone" />… </logic:iterate>   你可以定义一个变量保存当前的索引值:        <ol> <logic:iterate id="element" name="bean" property="stringArray" indexId="index"> <li> <em> <bean:write name="element"/> </em>&nbsp; [<bean:write name="index"/>]</li> </logic:iterate> </ol>   三.) 转发/重定向类型 logic:forward和logic:redirectlogic:forward标签和jsp:forward标签和相似,但它可以使用global forward中的一个ActionForward:   <logic:forward name="login" />--------------------------------------------------------------------------------------------------------------- 与上面相关的global forward中的代码: <global-forwards> <forward name="login" path="/loginForm.jsp"/> </global-forwards>  logic:redirect标签和上面的标签类似,但它默认调用的方法是response.sendRedirect(),取代了上面的requestDispatcher.forward()。最大的不同是它支持所有html:link标签的属性,所以你能够指定request参数:  <logic:redirect name="login" paramId="employeeId" paramName="employee" property="id" />  提示:1.) 在MVC框架下,不推荐使用这两个标签,你应该是从controller中选择下一个view,而不是从view中选择。           2.) 在Jsp页面中不要过多的使用logic标签。         1.<logic:equal> and so on比较标签 以下eg都是由一个servlet转发过来的  MyBean mb = new MyBean();  mb.setName("yc");  mb.setCount(200);  request.setAttribute("mybean",mb);  request.getRequestDispatcher("jsp1.jsp").forward(request,response);  eg1:<bean:define id="myint" value="100"/> //当前页面定义一个字符串            <logic:equal name="myint" value="100">            myint=100           </logic:equal>  eg2:<bean:define id="bean3" name="mybean" scope="request"/> //从request上获取bean           <logic:lessThan  name="bean3" property="count" value="200.a"> //比较bean的count属性和200.a           bean3 LessThan 200.a          </logic:lessThan>  注意:如果两个字符串都能够成功转为数字,则是比较数字的大小,否则像eg2就是比较字符串的大小  eg3:<bean:define id="bean1" name="mybean" property="name" scope="request"/>            <logic:equal name="bean1" value="yc">            name1=yc           </logic:equal>  eg4:<bean:define id="bean2" name="mybean" scope="request"/>           <logic:equal name="bean2" property="name" value="yc">           name2=yc          </logic:equal>  注意:eg3和eg4都是比较bean属性,只是写法不同  eg5:比较请求参数       <logic:equal parameter="id" value="150">      <bean:parameter id="myid" name="id"/>       parameter:<bean:write name="myid"/>=150      </logic:equal> 2.<logic:match> 查看指定字符串是否被包含 <logic:match name=""    value="被包含字符串"    location="start/end也可以不写,就是任意位置"/>  eg:<bean:define id="bean4" name="mybean" property="name" scope="request"/>         <logic:match  name="bean4" value="y" location="start">          yc is start with bean4         </logic:match> 3.< logic:iterator> a.遍历Vector等集合,value形式的 <logic:iterator    id="每个集合的元素"    name="集合在当前页面的绑定名"    indexId="序号"                 offset="起始位置,0开始"    length="遍历长度"/>       前提:  Vector v = new Vector();                    v.add("dog");                    v.add("girl");                    v.add("bird");                    v.add("cat");                    request.setAttribute("myvector",v);                    request.getRequestDispatcher("jsp1.jsp").forward(request,response);  eg1:<bean:define id="vector1" name="myvector" scope="request"/>            <logic:iterate id="element" name="vector1">            <bean:write name="element"/>            <br />            </logic:iterate>  eg2:<bean:define id="vector2" name="myvector" scope="request"/>            <logic:iterate id="element" name="vector2" indexId="index" offset="1" length="3">            <bean:write name="index"/>.<bean:write name="element"/><br />            </logic:iterate>  b.遍历Map等,key/value形式    只是输出的时候有所不同   <bean:write   name=""    property="key"/>输出元素的key部分   <bean:write   name=""    property="value"/>输出元素的value部分  前提:  HashMap hm = new HashMap();  hm.put("yc","yuechen");  hm.put("tjs","tianjinsong");  hm.put("xc","xiaocen");  hm.put("xk","xukai");  request.setAttribute("mymap",hm);  eg:<bean:define id="map1" name="mymap" scope="request"/>         <logic:iterate id="element" name="map1" indexId="index">         <bean:write name="index"/>.<bean:write name="element" property="key"/>:<bean:write name="element"   property="value"/><br />        </logic:iterate>    c.遍历map中的集合  双层iterator,内层iterator需要加入property="value"   前提:  HashMap hm2 = new HashMap();               String[]asia = {"china","japan","korea"};               hm2.put("asia",asia);               String[]erop = {"greman","rasa","england"};               hm2.put("erop",erop);               String[]us = {"usa","canada"};               hm2.put("us",us);               request.setAttribute("country",hm2);   eg:<bean:define id="myc" name="country" scope="request"/>          <logic:iterate id="element" name="country" indexId="index">          <bean:write name="index"/>.<bean:write name="element" property="key"/><br />          <logic:iterate id="inelement" name="element" indexId="inindex" property="value">          -----<bean:write name="inindex"/>.<bean:write name="inelement"/><br />          </logic:iterate>         </logic:iterate>   发表于 @ 2006年09月17日 22:28:00 | 评论 (0)    struts标签:bean标签   1.<bean:page> 当前页面获取jsp页面内置对象 <bean:page   id="当前页该内置对象的绑定名"   property="jsp内置对象名"/> jsp内置对象:application                          session                          request                          response                          config eg1:<bean:page id="mySession" property="session"/>    输出session创建时间:<bean:write name="mySession" property="creatTime"/>    输出sessionID:<bean:write name="mySession" property="id"/> eg2: <bean:page id="myApplication" property="application"/>    服务器信息:<bean:write name="myApplication" property="serverInfo"/> 注意:严格区分内置对象属性的大小写,可以用 <% session.XXX %> 看看session都有什么方法 2.<bean:include> 包含资源,将资源用一个变量代替 <bean:include   id="当前页面的绑定名"   forward="Global-Forward名" /> <bean:include   id="当前页面的绑定名"   page="jsp页面相对路径,用/开头" /> <bean:include   id="当前页面的绑定名"   href="完整url" />  显示资源 <bean:write name="绑定名" filter="是否显示原样html标记,默认true,显示,应该设置为false" /> eg1:<bean:include id="jsp2" page="/jsp2.jsp"/>     <bean:write name="jsp2" filter="true"/> eg2:<bean:include id="jsp3" forward="myForward"/>     <bean:write name="jsp3" filter="false"/> 3.<bean:define> 在toScope作用域(可以不写,默认page)上定义(绑定)一个变量,代表scope作用域(可以不写,默认从page找到application)上的 字符串,或者javabean,或者javabean的属性输出字符串:value是字符串的值,只有在此时才能用value属性 eg1:<bean:define id="myString" value="yc"/>            <bean:write name="myString"/>输出bean属性值: 已知当前jsp页面接受控制器发来的如下:  MyBean mb = new MyBean();  mb.setName("jrunner");  request.setAttribute("mybean",mb);  request.getRequestDispatcher("jsp1.jsp").forward(request,response);  eg1:<bean:define id="beanname1" name="mybean" property="name" scope="request"/>      <bean:write name="beanname1"/>  eg2:<bean:define id="beanname2" name="mybean" scope="request"/>      <bean:write name="beanname2" property="name" /> 注意:eg1,eg2相当于:<%=((MyBean)(request.getAttribute("mybean"))).getName() %>           注意scope可以不写,但是建议写,严格和request.getAttribute比较  eg3:<bean:define id="beanname3" name="mybean" type="demo.MyBean" scope="request"/>      <bean:write name="beanname3" property="name" />  eg4:<bean:define id="beanname4" name="beanname3" type="demo.MyBean" scope="page"/>      <bean:write name="beanname4" property="name"/> 注意:eg4 的beanname4是从page上面获得的beanname3,type属性可以不写       name:只能是绑定名       4.<bean:size> 输出集合长度 eg:在request上面绑定了HashMap类型的集合,绑定名是mymap,然后转发jsp页面  <bean:size id="length" name="mymap" scope="request"/>        <bean:write name="length"/>    5.<bean:write> 可以按照指定的格式输出,加format属性 eg1:request.setAttribute("myfloat",Float.valueOf("3.1"));      <bean:define id="myf" name="myfloat" scope="request"/>     <bean:write name="myf" format="#.###########"/>     这个时候会得出3.09999990463    6.<bean:parameter> 获得请求参数    一个参数的情况: <bean:paramter   id="当前页面请求参数的绑定名"    name="请求参数名"    value="请求参数默认值(可以不写)" /> <bean:write    name="当前页面请求参数的绑定名" />    n个参数的情况:

上一篇:Struts logic标签及增删改查
下一篇:Java多线程(五)、多线程其他知识简要介绍

相关文章

关键词: Logic标签

相关评论