- 浏览: 532984 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (533)
- spring (8)
- struts (21)
- hibernate (17)
- java其他 (73)
- 设计模式 (2)
- 开发软件/插件 (26)
- android (8)
- extjs4 (1)
- 网络编程 (4)
- 生活杂记 (3)
- ibatis (5)
- 应用服务器 (4)
- js (26)
- html/css (16)
- linux (0)
- db (32)
- jsp/servlet (13)
- xml (9)
- webservice (10)
- 错误/异常处理 (23)
- 线程 (10)
- maven (7)
- lucene (2)
- python (0)
- 报表 (1)
- mongodb (6)
- restful (6)
- ssl (1)
最新评论
-
zmwxiaoming:
...
struts2拦截器验证登陆状态 -
u012413283:
感谢楼主,同样的问题解决了
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案) -
javalucky:
你妹,想不吐槽都不行啊,eclipse 那来的maven4My ...
clipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin: -
zhaoyh82:
感谢楼主
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案) -
hua2011:
按照楼主说的,还是没有出现pom editor编辑器,麻烦楼主 ...
eclipse下安装m2e的maven插件报错的各类解决方案(含pom editor没装好的解决方案)
1.假使现在有这样一个Action:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.opensymphony.xwork2.ActionSupport import com.model.Student public class MapAction extends ActionSupport { private Map<String,String> map; private Map<String,Student> studentMap; private Map<String,String[]> arrayMap; private Map<String,List<Student>> listMap; public String testMap() { map=new HashMap<String,String>(); map.put("1", "one"); map.put("2", "two"); studentMap=new HashMap<String,Student>(); studentMap.put("student1",new Student(new Long(1),"20034140201","张三1","男",25)); studentMap.put("student2",new Student(new Long(2),"20034140202","张三2","女",26)); studentMap.put("student3",new Student(new Long(3),"20034140202","张三3","男",27)); arrayMap=new HashMap<String,String[]>(); arrayMap.put("arr1", new String[]{"1","2003401","leejie","male","20"}); arrayMap.put("arr2", new String[]{"2","2003402","huanglie","male","25"}); arrayMap.put("arr3", new String[]{"3","2003403","lixiaoning","male","21"}); listMap=new HashMap<String,List<Student>>(); List<Student> list1=new ArrayList<Student>(); list1.add(new Student(new Long(1),"20034140201","张三1","男",25)); list1.add(new Student(new Long(2),"20034140202","张三2","男",25)); list1.add(new Student(new Long(3),"20034140203","张三3","男",25)); listMap.put("class1", list1); List<Student> list2=new ArrayList<Student>(); list2.add(new Student(new Long(1),"20034140301","李四1","男",20)); list2.add(new Student(new Long(2),"20034140302","李四2","男",21)); list2.add(new Student(new Long(3),"20034140303","李四3","男",22)); list2.add(new Student(new Long(4),"20034140304","李四4","男",23)); listMap.put("class2", list2); return SUCCESS; } public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } public Map<String, Student> getStudentMap() { return studentMap; } public void setStudentMap(Map<String, Student> studentMap) { this.studentMap = studentMap; } public Map<String, String[]> getArrayMap() { return arrayMap; } public void setArrayMap(Map<String, String[]> arrayMap) { this.arrayMap = arrayMap; } public Map<String, List<Student>> getListMap() { return listMap; } public void setListMap(Map<String, List<Student>> listMap) { this.listMap = listMap; } }
这个action中给出了各种类型的map,下面我们有这样一个jsp,我们要将这些map展示到这个jsp中:
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>struts2中的map遍历总结</title> </head> <body> <b>1.map中的value为String字符串</b><br> <s:iterator value="map" id="column"> <s:property value="#column"/><br> key: <s:property value="key"/><br> value:<s:property value="value"/><br> ******************************************<br> </s:iterator> <b>2.map中的value为Student对象</b> <table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr> <td>key=value</td> <td>ID</td> <td>num</td> <td>name</td> <td>sex</td> <td>age</td> </tr> <s:iterator value="studentMap" id="column"> <tr> <td><s:property value="#column"/></td> <td><s:property value="value.id"/></td> <td><s:property value="value.num"/></td> <td><s:property value="value.name"/></td> <td><s:property value="value.sex"/></td> <td><s:property value="value.age"/></td> </tr> </s:iterator> </table> <p> <b>3.map中的value为String数组</b> <table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr> <td>key=value</td> <td>ID</td> <td>num</td> <td>name</td> <td>sex</td> <td>age</td> </tr> <s:iterator value="arrayMap" id="column"> <tr> <td><s:property value="#column"/></td> <td><s:property value="value[0]"/></td> <td><s:property value="value[1]"/></td> <td><s:property value="value[2]"/></td> <td><s:property value="value[3]"/></td> <td><s:property value="value[4]"/></td> </tr> </s:iterator> </table> <p> <b>4.map中的value为list凑集</b> <table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr> <td>class</td> <td>ID</td> <td>num</td> <td>name</td> <td>sex</td> <td>age</td> </tr> <1.<s:iterator value="listHashMap" id="listid"> <s:iterator value="#listid.value" id="listidsub"> <tr> <td><s:property value="key"/></td> <td><s:property value="id"/></td> <td><s:property value="num"/></td> <td><s:property value="name"/></td> <td><s:property value="sex"/></td> <td><s:property value="age"/></td> </tr> </s:iterator> </s:iterator> </table> </body> </html>
4、普通属性 public String execute(){ username = "zhangsan"; password = "123"; } <s:property value="username"/><br> <s:property value="password"/><br> 5、自定义对象 public String execute(){ userInfo = new UserInfo(); userInfo.setUsername("hhh"); userInfo.setPassword("111"); } <s:property value="userInfo.username"/><br> <s:property value="userInfo.password"/><br> 6、List(普通属性) public String execute(){ list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); } <s:iterator value="list" var="var"> <s:property value="var"/><br> </s:iterator> 或者: <s:iterator value="list"> <s:property/><br> </s:iterator> 6、List(自定义对象属性) public String execute(){ list = new ArrayList<UserInfo>(); UserInfo userInfo = new UserInfo(); userInfo.setUsername("u1"); userInfo.setPassword("p1"); userInfo.setRoleInfo(new RoleInfo("r1")); list.add(userInfo); userInfo = new UserInfo(); userInfo.setUsername("u2"); userInfo.setPassword("p2"); userInfo.setRoleInfo(new RoleInfo("r2")); list.add(userInfo); } <s:iterator value="list" var="var"> <s:property value="#var.username"/> <s:property value="#var.password"/> <s:property value="#var.roleInfo.rolename"/><br> </s:iterator> 或者: <s:iterator value="list"> <s:property value="username"/> <s:property value="password"/> <s:property value="roleInfo.rolename"/><br> </s:iterator> 7、数组(普通属性) public String execute(){ strs = new String[2]; strs[0] = "as"; strs[1] = "asd"; } <s:iterator value="strs"> <s:property/><br> </s:iterator> 或者: <s:iterator value="strs" var="var"> <s:property value="var"/><br> </s:iterator> 8、数组(自定义对象属性) public String execute(){ strs = new UserInfo[2]; UserInfo userInfo = new UserInfo(); userInfo.setUsername("u11"); userInfo.setPassword("11"); strs[0] = userInfo; userInfo = new UserInfo(); userInfo.setUsername("u22"); userInfo.setPassword("22"); strs[1] = userInfo; } <s:iterator value="strs"> <s:property value="username"/> <s:property value="password"/><br> </s:iterator> 或者: <s:iterator value="strs" var="var"> <s:property value="#var.username"/> <s:property value="#var.password"/><br> </s:iterator> 8、数组(自定义对象属性) public String execute(){ strs = new UserInfo[2]; UserInfo userInfo = new UserInfo(); userInfo.setUsername("u11"); userInfo.setPassword("11"); userInfo.setRoleInfo(new RoleInfo("r11")); strs[0] = userInfo; userInfo = new UserInfo(); userInfo.setUsername("u22"); userInfo.setPassword("22"); userInfo.setRoleInfo(new RoleInfo("r22")); strs[1] = userInfo; } <s:iterator value="strs" var="var"> <s:property value="#var.username"/> <s:property value="#var.password"/> <s:property value="#var.roleInfo.rolename"/><br> </s:iterator> 或者: <s:iterator value="strs"> <s:property value="username"/> <s:property value="password"/> <s:property value="roleInfo.rolename"/><br> </s:iterator> 8、Map(普通属性) public String execute(){ map = new HashMap<String,String>(); map.put("k1", "v1"); map.put("k2", "v2"); } <s:iterator value="map" var="var"> <s:property value="#var.key"/> <s:property value="#var.value"/><br> </s:iterator> 或者: <s:iterator value="map"> <s:property value="key"/> <s:property value="value"/><br> </s:iterator> 8、Map(自定义对象属性) public String execute(){ map = new HashMap<String,UserInfo>(); UserInfo userInfo = new UserInfo(); userInfo.setUsername("u1"); userInfo.setPassword("p1"); userInfo.setRoleInfo(new RoleInfo("r1")); map.put("k1", userInfo); userInfo = new UserInfo(); userInfo.setUsername("u2"); userInfo.setPassword("p2"); userInfo.setRoleInfo(new RoleInfo("r2")); map.put("k2", userInfo); } <s:iterator value="map" var="var"> <s:property value="#var.key"/> <s:property value="#var.value.username"/> <s:property value="#var.value.password"/> <s:property value="#var.value.roleInfo.rolename"/><br> </s:iterator> 或者 <s:iterator value="map"> <s:property value="key"/> <s:property value="value.username"/> <s:property value="value.password"/> <s:property value="value.roleInfo.rolename"/><br> </s:iterator> 8、Map嵌套Map(自定义对象属性) public String execute(){ map = new TreeMap<String,Map<String,UserInfo>>(); Map<String,UserInfo> innerMap = new TreeMap<String,UserInfo>(); UserInfo userInfo = new UserInfo(); userInfo.setUsername("u1"); userInfo.setPassword("p1"); userInfo.setRoleInfo(new RoleInfo("r1")); userInfo = new UserInfo(); userInfo.setUsername("u11"); userInfo.setPassword("p11"); userInfo.setRoleInfo(new RoleInfo("r11")); innerMap.put("k1", userInfo); innerMap.put("k11", userInfo); map.put("key1", innerMap); ////////////////////////// innerMap = new TreeMap<String,UserInfo>(); userInfo = new UserInfo(); userInfo.setUsername("u2"); userInfo.setPassword("p2"); userInfo.setRoleInfo(new RoleInfo("r2")); userInfo = new UserInfo(); userInfo.setUsername("u22"); userInfo.setPassword("p22"); userInfo.setRoleInfo(new RoleInfo("r22")); innerMap.put("k2", userInfo); innerMap.put("k22", userInfo); map.put("key2", innerMap); } <s:iterator value="map" var="var"> <s:iterator value="value"> <s:property value="#var.key"/> <s:property value="key"/> <s:property value="value.username"/> <s:property value="value.password"/> <s:property value="value.roleInfo.rolename"/><br> </s:iterator> </s:iterator>
评论
3 楼
一路既往
2013-01-08
不错很详细,很实用!希望继续有新作!
2 楼
bendan123812
2012-12-04
我觉得在项目中还是最好不要使用struts2的遍历标签。太慢了,在性能上和jstl的遍历标签不在一个级别
1 楼
sweat89
2012-12-03
发表评论
-
过滤器,拦截器, 监听器区别
2014-02-23 11:35 417总体的概念上的总结有: 1、拦截器是基于java反射机制 ... -
ognl.InappropriateExpressionException: Inappropriate OGNL expression: 1
2013-08-29 13:28 1512WARN OgnlValueStack:49 - Error ... -
<s:iterator>获取遍历数据的索引下标
2013-08-29 11:37 3707<s:iterator value="#uL ... -
struts2中的json
2013-08-17 12:29 908这里放一个转载的struts2中jso ... -
struts2 <s:textfield />中的日期格式化输出
2013-05-20 10:22 2176struts2 中的默认的日期输出并不符合我们的中文日常习 ... -
ognl.OgnlException: target is null for setProperty(null, "newsid", [Ljava.lan
2013-05-16 10:12 1209昨天写那个项目,发现所有的JSP界面的属性都报ognl.O ... -
struts2官方入门案列curd
2013-03-28 15:01 1918偶然在查看文档时,看到这个demo,后来认真看 ... -
ActionContext和OGNL
2013-03-18 19:27 1102使用struts2 ... -
java.lang.NoSuchMethodError: com.opensymphony.xwork2.util.ValueStack.findValue
2013-03-14 13:31 1528java.lang.NoSuchMethodError: c ... -
jsp自定义分页标签page
2013-03-11 16:15 2573日常工作项目里,分页是十分常见的, ... -
文件上传显示保存到数据库实现类
2013-03-11 09:59 1108public class UpLoadAction exte ... -
Struts2 -- s:if标签的使用
2013-01-24 10:46 1112A:<s:if>判断字符串的问题: 1、判断 ... -
struts标签绑定Map<String, List<Map<String, Object>>>
2013-01-07 15:51 1488早先时候已经有一篇写到struts的iterator标签去 ... -
s:iterator一行打印三条数据
2012-12-20 17:37 1787一般使用struts的iterator标签时,我们用它来遍历 ... -
Struts2的dojo使用与/template/ajax/head.ftl not found.
2012-12-09 22:29 1229在项目中使用到Struts2的dojo时,出现ja ... -
struts2文件上传/下载(附源代码)
2012-10-16 14:47 4405struts2对于文件的操作提供很多便捷的地方,因此在项 ... -
web使用displaytag显示表格(提供排序,链接,下载等等)
2012-10-14 10:09 2648DisplayTag是一个开源的自定义标签库(Custo ... -
struts2加载多个配置文件
2012-10-13 09:51 891在Struts2.0 中加载多个 struts.xml ... -
struts2拦截器验证登陆状态
2012-10-12 15:07 1697<interceptors> ... -
struts2过滤器验证登陆状态
2012-10-12 15:02 2601实现效果为: 用户在没登陆的情况下就不能访问管理页面, ...
相关推荐
<s:iterator value="list" id="book" status="u"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="name" /> </td> <td> ...
在action里面写了方法获取一个list,再将这个list的值放到jsp页面中显示出来,用的是<s:iterator>标签。
NULL 博文链接:https://takeme.iteye.com/blog/1663039
NULL 博文链接:https://takeme.iteye.com/blog/1663239
2. 遍历List<List<String>> 3. 遍历UserEntity 4. 遍历List<UserEntity> 遍历方法各有长短,若不是多表联接查询、显示表格的列数已经固定,一般用实体类(UserEntity)迭代的方式。相反,显示的数据表格行和列不确定...
4. <s:iterator></s:iterator>-----用于遍历集合 L: 1. <s:label></s:label>-----只读的标签 M: 1. <s:merge></s:merge>-----合并遍历集合出来的值 O: 1. <s:optgroup></s:optgroup>-----获取...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
<s:iterator value="list" status="st"> <tr> <td><s:property value="username"/></td> <td><s:property value="password"/></td> <td><s:property value="power"/></td> <td><s:property value="cdate"/></td> <td...
<s:iterator> <s:property /><br/> </s:iterator> </s:generator> 例2: 生成一个iterator,使用count属性。因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。 Generate an iterator ...
<s:iterator id="rs" value="resList" status="count" > </s:iterator> <s:iterator id="pwd" value="#request.usePwdList" status="mIndex"> <tr> <td> <a href="[removed]similarityPwdDeQQ('${pwd.idType...
NULL 博文链接:https://shupili141005.iteye.com/blog/667446
<iterator>:迭代器 <list>:链表 <map>:映射 <memory>:内存管理 <optional>:可选值 <queue>:队列 <random>:随机数 <regex>:正则表达式 <set>:集合 <stack>:栈 <string>:字符串 <tuple>:元组 <unordered_...
1:在action中定义的变量,在jsp页面中显示用:<s:property value="变量名" /> 2:在页面中实现自动增加的序号用iterator的statuts的index属性 eg: <s:iterator value="#request.inOutAccountList" id="data" ...
<s:include value="../Struts2GotoPage.jsp"></s:include> <s:iterator value="goods" id="item" status="st"> <tr align="center"> <td >${st.index+1} </td> <td >${item.gsName }</td> <td >${item....
可以通过2种方法遍历HashMap<br><br>Map map = new HashMap();<br><br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {<br><br> Map.Entry entry = (Map.Entry) iter.next();<br><br> Object ...
vector<student>::iterator cit; cit=onit.end(); onit.insert(cit,Student); cout<<"你插入的学生信息为:"<<endl; cit=onit.begin(); for (;cit!=onit.end();cit++) { // cout <<"学生姓名为:"<<*cit->...
(2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl; (6)插入元素...
主要介绍了JSP中c:foreach遍历和s:iterator遍历异同,以两个完整实例形式对比分析了c:foreach遍历和s:iterator遍历的具体用法,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍Strus2中的通用标签,主要有<s:url>, <s:set>, <s:push>, <s:if>, <s:elseif>, <s:else>, <s:iterator>, <s:sort>, <s:date>, <s:a>等几个标签的具体用法,希望能对大家有帮助。