- 浏览: 7339554 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
总的来说JSP页面中的元素<s:property value="xxx"/>,只要在action中有它对应的public Getter即可得到相应的值。
在struts2的标签中没有计算一个集合的长度的标签必须使用核心标签中c标签和fn函数标签结合:
如下:备注使用<c:choose>的时候必须使用c:when标签
<c:choose>
<c:when test="${requestScope.ticketList != null && fn:length(requestScope.ticketList) > 0}">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
使用struts2的表里标签如下:注意放在request中的对象必须在request前添加#否则将不会显示
<s:iterator value="#request.ticketList">
<s:property value=""/> 用于显示字符串或集合对象中一个对象的一个属性
</s:iterator>
判断标签的应用:
<s:if test="noticeType==1">
电话
</s:if>
<s:elseif test="noticeType==2">
短信
</s:elseif>
<s:elseif test="noticeType=3">
邮件
</s:elseif>
<s:else>
无需通知
</s:else>
单选按钮的集合使用如下:
注意此处使用Map显示默认值为0,显示为价格(#不可以省略哦)
<s:radio name="entity.priorityType" list="#{0:'价格',1:'交通',2:'环境'}"
value="0" >
</s:radio>
多项复选框的使用
<s:checkboxlist name="hotel_Class" onclick="setTicketType('hotel_Class','hotelClass')" list="{'五星','四星','三星','二星','经济型酒店'}" ></s:checkboxlist>
文本框的使用:
<s:textfield name="entity.hotelname" size="30" maxlength="40"></s:textfield>
文本域的:
<s:textarea name="entity.hotelRemark" cols="40" rows="5" ></s:textarea>
struts2时间的格式化显示:使用服务端标签和<s:date> 和客户端标签的结合使用
<input type="text" name="entity.startHotelTime" value="<s:date name='entity.startHotelTime' format='yyyy-MM-dd'/>"/>
从request中获取对象
ActionContext ctx=ActionContext.getContext();
Map params=ctx.getParameters();
Java代码
<s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}" />
<s:select label="userList" name="userList" list="userList" listKey="id" listValue="name" /> // userList中为JavaBean
<s:select label="'map'" name="mapList" list="map"/>
<s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}" />
<s:select label="userList" name="userList" list="userList" listKey="id" listValue="name" /> // userList中为JavaBean
<s:select label="'map'" name="mapList" list="map"/>
选择(select)一个集合的子集(叫做投影),你可以在Collection中使用通配符.
? -所有符合选择逻辑的元素
^ - 符合选择逻辑的第一个元素
$ - 符合选择逻辑的最后一个元素
示例:
JavaBean:
Book.java
private String title;
private String author;
private double price;
Action: private List<Book> bookList;
JSP页面:
<s:iterator value="bookList.{?#this.price > 35}">
<s:property value="title" /> :<s:property value="price" />
</s:iterator>
Iterator
遍历List
Java代码
<s:iterator value="userList" status="status">
//userList来自Action的public List getUserList()得到,无参的Getter,且修饰符一定为public
<s:set name="user"/>
<s:property value="name"/>
<s:property value="#user.name"/>//来自JSP页面的变量得用#引用
<s:property value="top.name"/>
<s:property value="top"/>
<s:property value="getValue(#user)"/>//getValue为Action中定义的public User getValue(User user)
</s:iterator>
<s:iterator value="userList" status="status">
//userList来自Action的public List getUserList()得到,无参的Getter,且修饰符一定为public
<s:set name="user"/>
<s:property value="name"/>
<s:property value="#user.name"/>//来自JSP页面的变量得用#引用
<s:property value="top.name"/>
<s:property value="top"/>
<s:property value="getValue(#user)"/>//getValue为Action中定义的public User getValue(User user)
</s:iterator>
遍历Map
1.第一个例子:
<s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00" headerValue="00"></s:select>
2.第二个例子:
<s:select list="#{1:'aa',2:'bb',3:'cc'}" label="abc" listKey="key" listValue="value" headerKey="0" headerValue="aabb">
3.第三个例子:
<%HashMap map = new LinkedHashMap();map.put(1,"aaa");map.put(2,"bbb");map.put(3,"ccc");request.setAttribute("map",map);request.setAttribute("aa","2"); %><s:select list="#request.map" label="abc" listKey="key" listValue="value" value="#request.aa" headerKey="0" headerValue="aabb"></s:select>
struts2的select标签中,常用的有以下几个属性:
(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。
(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。如:
xml 代码
<s:select name="geElement.childType" list="childTypeList" listKey="key"
listValue="value" headerKey="0" headerValue="--请选择子类型--"/>
其中,即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。注意,headerKey不可以为空,不可以为-1。
(3)list属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。
(4)listKey和listValue:listKey即对应于select标签中的value, listValue即对应于select标签中的option。
(5)name属性:即是表单中select的名称。
Java代码
<s:iterator value="map" status="status">
<s:property value="key"/>
<s:property value="value"/>
</s:iterator>
<s:iterator value="map" status="status">
<s:property value="key"/>
<s:property value="value"/>
</s:iterator>
例子:
Java代码
<s:iterator value="{'a','b','c'}" status="status" >
<s:property value="#status.index" />
<s:property value="#status.count-1" />
<s:property value="top" />-
<s:property value="'top'+#status.index+':'+top" />
</s:iterator>
<s:iterator value="{'a','b','c'}" status="status" >
<s:property value="#status.index" />
<s:property value="#status.count-1" />
<s:property value="top" />-
<s:property value="'top'+#status.index+':'+top" />
</s:iterator>
输出:
0 0 a- top0:a
1 1 b- top1:b
2 2 c- top2:c
iterator 中status 的方法:
even : boolean - returns true if the current iteration is even
odd : boolean - returns true if the current iteration is odd
count : int - returns the count (1 based) of the current iteration
index : int - returns the index (0 based) of the current iteration
first : boolean - returns true if the iterator is on the first iteration
last : boolean - returns true if the iteration is on the last iteration
modulus(operand : int) : int - returns the current count (1 based) modulo the given operand
eg:<s:property value="#stat.modulus(2)" />
IF
Java代码
<s:if test="#status.odd">class1</s:if><s:else>class2</s:else>
<s:if test="type=='Amount'||type==null"> display</s:if>
//其中type相当<ww:property value="type" />
s:checkboxlist label="包含字段" name="mainKind1.fields" list="#{0 : '标题',1 : '标签',2 : '简介'}" value="{0,2}"/>
<s:checkboxlist label="包含字段" name="mainKind1.fields" list="#{0 : '标题',1 : '标签',2 : '简介'}" value="{0,2}"/>
这时候 ‘标题’ 和 ‘简介' 被勾中状态, 但 这是静态的 ,不是自动回填 。
发表评论
-
整合Struts2+JasperReport Web报表应用示例
2013-04-22 13:56 2289整合Struts2+JasperReport Web报表应用 ... -
Struts2+JFreeChart制作图标
2011-11-26 13:52 2101前言 关于Struts2入门以及提高等在这里就不介绍了 ... -
Struts2.0中获取项目的上下文的两种方式
2010-01-19 13:42 3288Struts2.0中获取项目的上下文的两种方式 方 ... -
Struts2.0中通过OGNL访问常量必须注意的一个配置
2010-01-19 13:34 2629在项目的开始阶段,由于没有学习Struts2.0中OGNL的 ... -
Struts2.0 中值栈的实现以及解析OGNL以及值堆栈的原理
2010-01-14 13:19 4669OGNL的值栈实现的堆栈动态OGNL的表达式。何时设置 ... -
关于Struts2.0 标签中采用%{}%的处理原理
2010-01-14 13:08 2712项目中采用struts2.0 ... -
struts 2配置文件解说
2010-01-13 13:09 1402struts 2框架有两个核心配置文件: struts.xml ... -
struts2.0的ognl表达式 研究
2010-01-13 13:05 2660OGNL —— 完美的催化剂 为了解决数据从 ... -
Struts2和OGNL
2010-01-13 10:57 2068OGNL是XWork引入的一个非常有效的数据处 ... -
Struts2参数传递
2010-01-13 10:45 2447本篇主要通过实例来讲述Struts2中各种各样的参数传递。这个 ... -
Struts2.0的不同版本针对枚举转换器应用
2010-01-13 10:39 2845Struts2.0 的Apache项目中从Strut ... -
Struts2.0 中支持的基本数据类的转换的类XWorkBasicConverter的分析
2010-01-13 10:25 4596项目中Struts2.1.6不支持基本数据类型的自动转换, ... -
Struts2.0加載配置順序
2009-12-28 13:33 2516Struts2.0默認的加载顺序: Constants ... -
Struts2.0的IOC方式注入SessionAware, CookiesAware
2009-12-10 19:59 4002在Action实现相应的 private Map<S ... -
Struts2工作原理和框架扩展点
2009-12-08 18:49 3881上图来源于Struts2官方站点,是Struts ... -
Struts2.0 和JQuery實現AjaX的調用功能
2009-11-27 12:47 2355开发过程忽略: 重点注意点解释以下: (1)将Ac ... -
在Struts2.0中批量操作(update Or Add)的實現和注意點
2009-11-15 16:41 3050在項目中,需要針對一批数据进行或添加或着修改操作。使用S ... -
在Struts2.0 中将Enum对象与组件的绑定
2009-08-19 13:05 4169在项目使用一个下拉框绑定或单选或复选框的绑定的应用: ... -
struts2 标签针对字符串截取的处理
2009-06-18 13:16 6202struts2 标签截取字符串的功能 <td> ... -
Struts2中 用OGNL表达式
2009-06-18 12:40 3481具体记录如下:<s:set ...
相关推荐
### Struts2页面开发中常用的标签介绍 #### 一、Struts2常用标签概述 Struts2框架在Java Web开发中被广泛应用于构建MVC架构的应用程序。它提供了丰富的标签库来简化页面开发过程,使得开发者能够更加高效地处理...
在这个“Struts2项目开发经验总结”中,我们将深入探讨Struts2的核心概念、关键特性以及在实际项目中的应用。 首先,Struts2作为控制器,负责处理HTTP请求,并通过Action类来执行业务逻辑。Action类是Struts2的核心...
总结起来,这个Struts2实例项目通过整合国际化、类型转换和Struts2标签,构建了一个完整的用户管理系统,展示了如何在实际开发中高效地处理Web请求,实现业务逻辑,并提供多语言支持。这样的练习有助于提升开发者对...
总结来说,"jsp中struts2.0标签应用示例"这个主题主要关注如何在JSP页面中利用Struts2.0提供的标签进行视图层的构建,通过实际例子展示了`<s:form>`、`<s:textfield>`、`<s:password>`、`<s:select>`等常用标签的...
在本文中,我们将深入探讨Struts2的开发实例,重点在于版本为Struts2.1.6的项目实践,同时使用Oracle9i作为数据库。 首先,要搭建Struts2项目,你需要包含以下关键库文件:commons-logging-1.0.4.jar用于日志处理,...
总结,Struts2的标签库极大地简化了JSP页面的编写,提高了开发效率。通过深入学习和实践,开发者可以充分利用这些标签来构建出结构清晰、功能强大的Web应用。在实际项目中,结合源码分析和相关开发工具,可以进一步...
在Struts2中,`<s:iterator>`标签是最常用的迭代标签,用于遍历集合或数组。例如,你可以使用它来显示数据库查询结果: ```jsp <p>Id: , Name: <s:property value="name" /></p> ``` 在这个例子中,`list`是你...
在实际项目中,开发者可以将`struts2-tags-API`文档作为参考,快速查找和理解标签的使用方法。如果遇到问题,可以查看标签的错误信息,或者使用调试工具查看标签的生命周期和执行流程,以便定位和解决问题。 总结,...
Struts标签库是Java Web开发中的一个重要组成部分,主要用于构建基于MVC(模型-视图-控制器)架构的应用程序。这个库极大地简化了JSP页面的编写,提供了丰富的标签来处理常见的Web开发任务,如表单处理、数据校验、...
### Struts1标签库详解:核心知识点概览 #### Bean Tags: 创建与管理Bean ...通过阅读和实践,开发者可以更加深入地理解Struts1框架的核心概念和实现机制,从而在实际项目中更高效地运用这一强大的Web开发框架。
这篇博客文章《Struts2中使用displaytag标签总结》很可能是讨论如何在Struts2框架下集成并利用DisplayTag库来高效地处理表格显示。 DisplayTag标签库包括一系列自定义JSP标签,这些标签能够帮助开发者快速创建美观...
在Java Web开发中,Struts2框架因其丰富的标签库而被广泛使用,特别是其中的日期格式化功能,能够帮助开发者方便地对日期进行格式化处理。本文将详细介绍如何利用Struts2中的`<s:datename>`标签来格式化时间,并提供...
在实际开发中,这些JAR文件会被添加到项目的类路径中,确保Struts 2框架能够正常运行。同时,开发者可以根据需求选择安装额外的插件来扩展Struts 2的功能,如图表插件、富文本编辑器插件等。 总结来说,"Struts 2...
原文提到的“io svn,cvs”可能是指在开发Struts2项目时所使用的版本控制系统。SVN(Subversion)和CVS(Concurrent Versions System)都是常用的版本控制工具,它们可以帮助团队协作开发时有效地管理代码版本。在...
通过实例演示如何在实际项目中使用Struts2标签,例如创建一个用户注册表单,利用`s:form`、`s:textfield`、`s:submit`等标签完成表单构建和提交。 10. **总结** 总的来说,Struts2标签为Java web开发带来了巨大的...
总结来说,Struts2作为一款强大的MVC框架,通过其无侵入式设计、拦截器、类型转换、多样化的视图支持和灵活的数据校验,极大地提升了Java web开发的效率和质量。对于初学者来说,理解和掌握这些核心特性是学习Struts...
总结,Struts2的标签库提供了丰富的功能,使得开发者能够快速构建动态Web应用。理解并熟练掌握Struts2标签,尤其是Ajax标签,将有助于提升开发效率和代码质量。通过深入研究提供的示例项目源码,可以更好地理解和...
而视频资源如"50_尚学堂马士兵_Struts2_Struts标签_7_if.avi"、"51_尚学堂马士兵_Struts2_Struts标签_8_iterator.avi"和"53_尚学堂马士兵_Struts2_Struts标签_总结.avi"则是深入了解和掌握Struts2标签库的宝贵资料,...
总结来说,基于Struts2的BBS项目充分利用了Struts2框架的功能,实现了用户认证、论坛浏览、发帖、回复等一系列功能。通过合理的架构设计和组件选择,确保了系统的扩展性和可维护性。项目的具体实现细节,如数据库...