- 浏览: 149092 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (119)
- ibatis (7)
- oracle (14)
- struts (4)
- js (11)
- web (6)
- java基础 (16)
- jstl (1)
- use (2)
- log4J (1)
- Json (2)
- jxl (5)
- server (1)
- spring (4)
- jquery (8)
- struts2 (1)
- AjaxAnywhere (1)
- extjs (1)
- hibernate (1)
- other (3)
- tld (1)
- jms (2)
- lib (0)
- 应用 (1)
- web前端 (2)
- linux (2)
- jvm (9)
- 缓存 (1)
- spring mvc (1)
- ftp (1)
- ide (1)
最新评论
Logic 标签库
此标签库可以分为三种类型:条件、循环、转发/重定向。
一.) 条件类型
1. logic:empty和logic:notEmpty
logic: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>
[<bean:write name="index"/>]</li>
</logic:iterate>
</ol>
三.) 转发/重定向类型
logic:forward和logic:redirect
logic: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标签所有应用源代码 看懂了这个,你就会明白bean标签所有的使用方法 我还上传了html标签、bean标签,这三种标签在Struts中用得最多的,希望能给你一些帮助
在Struts框架中,`logic`标签库是其核心组件之一,用于处理应用程序中的逻辑控制,如导航、循环等。这篇博文主要探讨了如何使用`logic`标签来实现数据的增删改查操作,以及它们在实际项目中的应用。 `logic`标签库...
Struts Logic 标签解释和示例 Struts Logic 标签是一种功能强大的标签库,提供了多种逻辑判断和控制流程的功能。下面将对 Struts Logic 标签进行详细的解释和示例。 比较运算的 Logic 标签 * `<logic:equal>`:...
总的来说,Logic标签库是JSP开发中一种实用的工具,它简化了页面中的条件判断和数据处理,但随着JavaServer Faces (JSF)和Spring MVC等框架的发展,现在的Web开发中,这些标签的使用已经逐渐减少,被更强大、更灵活...
在Struts框架中,逻辑标签(LOGIC标签)是JSP标签库的一部分,用于处理页面的流程控制和逻辑判断。这些标签简化了在JSP页面上进行条件判断和循环操作,从而使得代码更易读、更易于维护。 **1. `logic:iterate`标签*...
由于提供的文件内容是一个关于“logic标签库.pdf”的摘录,内容涉及了一系列与JSP页面开发相关的标签和属性。为了使内容更加通顺,以下是对这些知识点的整合和解释,将尽量避免直接引用原始文档的文字以减少OCR错误...
在Struts中,logic标签库是用于处理条件逻辑和流程控制的重要组成部分,它允许开发者在JSP页面上进行复杂的业务逻辑处理,而无需深入到Servlet或Action类中。下面我们将详细介绍如何在Struts中使用logic标签。 一、...
Logic标签库提供逻辑控制,帮助处理条件判断和循环。 - `<logic:notEmpty>`、`<logic:empty>`:检查集合是否为空。 - `<logic:iterate>`:迭代集合并重复嵌套的JSP内容。 - `<logic:present>`、`<logic:not...
Struts Logic标签库是Struts框架中的一个重要组成部分,它提供了一系列的HTML标签,用于处理页面逻辑,如条件判断、循环以及请求转发等。这些标签使得开发者可以在JSP页面上更直观地实现业务逻辑,而无需编写过多的...
Struts Logic标签Struts Logic标签Struts Logic标签Struts Logic标签Struts Logic标签
最后是Logic标签库,它提供了处理控制流程的标签,如条件判断和循环。例如,`<logic:equal>`标签用于比较两个值是否相等,`<logic:notEmpty>`检查集合或字符串是否为空,`<logic:iterate>`用于遍历集合并重复渲染...
struts-logic标签 自已讲课用的 初稿 PPT
精通struts1的logic标签的使用方法,比传统的web jsp技术更能节省代码开销,提高系统的运行效率
在这些标签中,`Logic`标签库尤其重要,它提供了多种逻辑判断和控制功能。下面我们将深入探讨其中几个主要的标签及其用法。 1. `logic:empty` `logic:empty`标签用于检查一个对象是否为空,包括null、空字符串、空...
Struts Logic标签是Java Struts框架中的一部分,用于在JSP页面中进行条件判断和流程控制,极大地简化了页面逻辑的实现。这些标签提供了一系列的比较和导航功能,使得开发者无需编写JavaScript或Java脚本就能在视图层...
`logic`标签是Struts框架中用于控制流程和数据展示的重要组成部分,主要包含在JSP页面中,便于处理逻辑操作。在Struts的学习过程中,`<logic:iterate>`标签是经常遇到的一个,它允许我们遍历数组、Collection、...
在Struts框架中,`struts-logic`标签库提供了一系列的标签,用于处理页面逻辑,使得开发者可以在JSP页面中进行条件判断、循环等操作,而无需过多地编写Java脚本。这些标签极大地提高了代码的可读性和维护性。 1. `...
The "struts-logic" tag library contains tags that are useful in managing conditional generation of output text, looping over object collections for repetitive generation of output text, and ...
`logic`标签是Struts 1.x中的一个核心标签库,用于处理控制流程,如条件判断、迭代等。这个标签库提供了一系列与流程控制相关的标签,帮助开发者在JSP页面上实现业务逻辑,从而让视图更加清晰,代码更加易于维护。 ...