1. <s:iterator value="cooperList" status="st">
<s:if test="#st.odd||#st.first">
boolean isEven() 当前迭代元素索引是否为偶数;
boolean isOdd() 当前迭代元素索引是否为奇数;
boolean isLast() 是否为最后一条元素;
boolean isFirst() 是否为第一条元素。
有以上元素,那么判断何时加入tr就非常方便。
<s:if test="((#stuts.Index)+1)%3==0"> #stuts.Index迭代到了第几个
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</s:if>
struts2.0 iterator
struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo: s:iterator 标签有3个属性: value:被迭代的集合 id :指定集合里面的元素的id status 迭代元素的索引
1:jsp页面定义元素写法 数组或list
<s:iterator value="{'1','2','3','4','5'}" id='number'> <s:property value='#number'/>A </s:iterator> 打印结果为: 1A2A3A4A5A
<s:iterator value="{'e1','e2','e3'}" id="name" status="st">
<s:property value="#name"/>
</s:iterator>
2:索引的用法 如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法 int getCount()返回当前迭代了几个元素 int getIndex()返回当前元素索引 boolean isEven()当然的索引是否偶数 boolean isFirst()当前是否第一个元素 boolean isLast() boolean isOdd()当前元素索引是否奇数
<s:iterator value="{'a','b','c'}" id='char' status='st'> <s:if test="#st.Even"> 现在的索引是奇数为:<s:property value='#st.index'/> </s:if> 当前元素值:<s:property value='char'/> </s:iterator> 3:遍历map value可以直接定义为:
value="#{"1":"a","2":"b"}" 每个元素以都好隔开。元素之间的key和value 冒号隔开 value也可以是数据栈里面的java.util.Map对象 遍历写法如下:
<s:iterator value="map" id="id" status="st"> key : <s:property value='key'/> value:<s:property vlaue='value'/> </s:iterator> 当然key 和value 都可以使java 的 Object
3:遍历数据栈.简单的List类, List<Attr> class Attr{String attrName;String getAttrName(){return "123";}}
<s:iterator value="label" id="id"> <s:property value="#id.attrName" /> </s:iterator> 当然value 还可以写成 value="%{label}" label可以有.操作 label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();
4:遍历2个list; List<AttrName> attrN {color,size,style} List<AttrValue> attrV {red,20,gay} 这2个list的元素是一一对应的,一个attrN对应一个attrV
<s:iterator value="%{attrN }" id="id" status="status"> index is : <s:property value='status.index'/> attrName is : <s:property value='id'/> or <s:property value='%{id}'/> attrName is : <s:property value='%{attrV[#status.index]}'/> </s:iterator>
|
2.文件上传
你在客户端定义的file控件的名称为:
myFile
所以你在struts2的服务端需要定义myFile的这个属性,
但是struts2有一种自动的机制,能够将文件名,文件类型自动保存到一个变
量里面。
现在的问题是:
struts2怎么知道你要保存的变量是哪一个?随便选择一个吗?这样是没有意义的。
所以struts2就定义了一个规则。
以客户端定义的file控件的名称myFile为准.
private String myFileContentType;// 文件的内容类型
private String myFileFileName;// 上传文件名
注意:
myFile+ContentType
myFile+FileName
这一下struts2就知道是哪一个了,呵呵。
相对路径
ServletActionContext.getRequest().getRealPath("productimage\\"+myFileName);
3.format实例
<fmt:formatDate value="<%=new Date() %>" pattern="yyyy年MM月dd日HH点mm分ss秒" />
4.s:property
value="aaa"
value="#session.aaa"
value="%{aaa}"
5.Struts2.0标签实现的一个分页
<td align="center">
<font color="#ffffff">
第<s:property value="pag.page"/>页/
总共<s:property value="pag.allpage"/>页
<s:iterator value="{-3,-2-1,0,1,2,3}" id="name" status="st">
<s:set name="temp" value="#name+pag.page"></s:set>
<s:if test="#temp>0&&#temp<=pag.allpage">
<a href="product.action?pageNo=<s:property value='#temp'/>">
[<s:property value="#temp"/>]
</a>
</s:if>
</s:iterator>
<s:if test="pag.page!=1">
<a href="product.action?pageNo=<s:property value='pag.page-1'/>">上一页</a>
</s:if>
|
<s:if test="pag.page<pag.allpage">
<a href="product.action?pageNo=<s:property value='pag.page+1'/>">下一页</a>
</s:if>
</font>
</td>
6.Struts2乱码问题
用struts2的情况下,fiter过滤器去修改request的字符编码不能够影响struts2中ServletActionContext获得的request的编码。必须在struts.xml中配置
<constant name="struts.i18n.encoding" value="gbk"></constant>
7.获得inputStream和classes路径
JdomParse.class.getClassLoader().getResource("").getPath() ;
JdomParse.class.getClassLoader().getResourceAsStream(“文件”);
分享到:
相关推荐
总的来说,Struts2.0笔记将涵盖MVC设计模式的实现、Action的定义与调用、拦截器的应用、配置文件的解析、结果处理和视图展现等方面的知识。通过学习Struts2.0,开发者可以构建出结构清晰、易于维护的Web应用,同时也...
struts2.0学习笔记1 自己动手做的还算可以的 ]struts2.0学习笔记1 自己动手做的还算可以的struts2.0学习笔记1 自己动手做的还算可以的struts2.0学习笔记1 自己动手做的还算可以的
本培训笔记将深入探讨Struts2.0的核心概念、特性以及如何在实际项目中有效应用。 一、Struts2.0框架基础 Struts2.0是Apache软件基金会的项目,它是Struts1.x的升级版,提供了更强大的功能和更好的性能。该框架通过...
知识点: ready, tag, action, internationalization, converter, validation, interceptor,ioc,file upload, crud, ognl,struts2&ajax struts1&struts2
本学习笔记主要涵盖了Struts2.0的基础概念、核心组件、配置方法以及实际代码示例,旨在帮助开发者更好地理解和运用这个框架。 一、Struts2.0基础 Struts2.0是Apache软件基金会的开源项目,它是Struts1.x的升级版本...
Struts2.0 是一款基于 MVC 设计模式的开源框架,用于构建企业级的 Java Web 应用。它简化了MVC开发,提供了一种更简单、更灵活的方式来处理请求和响应。以下是对Struts2.0核心概念的详细解释: 1. **运行环境配置**...
本篇笔记将详细介绍如何在MyEclipse环境中配置Struts2.0,并逐步演示从创建运行环境到实现简单的验证和自定义类型转换的过程。 首先,我们需要准备运行环境。MyEclipse 6.0 和 Tomcat 5.5 是开发Struts2.0应用的...
struts2.0实例源码(struts2是我写的struts2Deom是我下的资源项目一起给大家) 包括strust2.0的所有知识面,每个点我都写了详细注释 网上是很难找到这样的资料的,这是我个人学习笔记拿出来希望跟大家一起学习...
Struts2.0是一个流行的Java Web开发框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。在Struts2中,类型转换是自动进行的,旨在帮助开发者处理请求参数与Action类属性之间的类型匹配问题。文档中的内容主要...
通过阅读Struts2.0中文手册和学习笔记,以及动手实践教程中的示例,可以全面掌握Struts2.0的用法和精髓。在实际项目中,熟练运用Struts2.0能提高开发效率,降低维护成本。同时,了解并熟悉相关的社区资源和最佳实践...
这个压缩包包含的资源是作者学习Struts2.0过程中的笔记和示例,分为两个文档:struts2.0文档1-2.doc和struts2.0文档3-4-5.doc,涵盖了从基础到进阶的内容。 在"struts2.0文档1-2.doc"中,可能包括了以下知识点: 1...
<display-name>Struts2.0HelloWorld <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher <filter-name>struts2 <url-pattern>/* <!-- 其他配置 --> ``` 这段代码...
"Struts2.0中文教程.chm"可能是包含详细步骤和示例的离线帮助文档,帮助学习者理解每个概念和实践。而"99java.com.txt"可能是一份来自99java.com网站的资源链接或笔记,提供了更多相关的学习资料和社区支持。 通过...
Struts2 学习笔记-part2: 实现用户登录功能 在上一部分中,我们了解了构建一个基于Struts2的Java Web项目所需的基本库和配置文件。现在,我们将逐步实现一个简单的用户登录功能。 一、创建Action类 在Struts2框架...
### Struts2.0 学习笔记 #### 引言 Struts2 是一款非常流行的 Java Web 开发框架,它基于 Struts1 进行了重大的改进与优化,不仅继承了 Struts1 的优秀特性,还在此基础上进行了扩展,支持更加丰富的功能,如拦截...
Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的一个MVC(Model-View-Controller)架构。这个框架主要用于构建和维护可复用的、结构化的Web应用程序,提高了开发效率并简化了...