Struts-Logic 标签库

此标签库可以分为三种类型:条件、循环、转发/重定向。

一.) 条件类型

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>
上段代码表示当一个名为myBean的bean在所有的scope中都不存在时,输出The bean is missing;存在的话输出The bean is not missing。
此标签有三个属性:name、property和scope。

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> 


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>
上段代码检查在page作用域内名为myBean的bean是否有一个prop属性。

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>

检查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> 

检查名为"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: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" />

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
struts-2.3框架的开发流程包括以下几个步骤: 1. 下载和配置struts-2.3框架:首先,你需要从官方网站下载struts-2.3的jar包。然后,将下载的jar包添加到你的项目中,并在项目的配置文件中引入struts-2.3的DTD文件。另外,你还需要将struts-2.3框架的配置文件(struts.xml)添加到项目的src目录下。 2. 创建Action类:在struts-2.3框架中,Action类是处理用户请求的核心组件。你需要创建一个Action类,并实现对应的业务逻辑。 3. 配置struts.xml文件:在struts.xml文件中,你需要配置Action类的映射关系,即将用户的请求路径映射到对应的Action类上。你还可以在struts.xml文件中配置拦截器、结果类型等信息。 4. 编写视图页面:根据你的业务需求,你需要编写对应的JSP页面来呈现数据和与用户进行交互。 5. 部署和测试:完成以上步骤后,你可以将项目部署到服务器上,并进行测试,确保struts-2.3框架的开发流程正常运行。 总结起来,struts-2.3框架的开发流程包括下载和配置框架、创建Action类、配置struts.xml文件、编写视图页面以及部署和测试。通过这些步骤,你可以使用struts-2.3框架来进行Web应用的开发。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Struts2框架概述、Struts简介、Struts环境搭建、Struts执行流程、Struts文档、Struts配置文件的加载顺序-...](https://blog.csdn.net/qq_43414199/article/details/107729976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值