struts2 <s:iterator></s:iterator>如何自身2次迭代 如列子list=[[a, b, c], [a1, b1, c1]]想取得子集的子集的值放入不同的div中,怎么处理,还望高人指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <s:iterator value="#request.list" id="l">//不同版本的struts可用var替代id,这里的l就代表了集合里的对象(可以是BEAN\MAP\LIST\数组等集合类型或对象) <div><s:property value="#l.id"/></div> <div><s:property value="#l.name"/></div> </s:iterator> <s:iterator value="#request.list" var="f"> <s:iterator value="#f" var="s"> <div><s:property value="#s.id"/></div> <div><s:property value="#s.name"/></div> </s:iterator></s:iterator>根据楼上改的,刚看了些struts2 还没装环境,不知道对不对,你可以试试但感觉既然是二维的List就应该用嵌套 同样是HTML CODE为什么我的就没变色啊亲! 贴下代码,大伙帮看看怎么解决就是莫伊一个购物车,这个action传属性,然后放到一个list里,然后设置为session,items()是判断session存在与否的,session的值应该是这样的items=[[a, b, c], [a1, b1, c1]],然后就悲剧了,在jsp页面不知怎么把a,b,c拿出来循环望高人指点!代码如下:package action;import com.opensymphony.xwork2.ActionSupport;import java.util.*;import org.apache.struts2.interceptor.SessionAware;import bean.ItemOne;import bean.setcart;public class cartItems extends ActionSupport implements SessionAware{ private Map cartSession; private List list; private List newlist; private List c; private Integer id; //标识 private String price; //单价 private String price1; //优惠价 private String bei; //备注 private int count; //购买数量 private String name; //商品名称 private String you;//优惠 private int fen;//积分 public cartItems(){ } public List add1(){ newlist=new ArrayList(); Float.valueOf(you); Float.valueOf(price1); newlist.add(getId()); newlist.add(getName()); newlist.add(getPrice1()); newlist.add(getYou()); newlist.add(getFen()); newlist.add(getCount()); return newlist; } public List add(){ list=new ArrayList(); list.add(add1()); return list; } public void items(){ Object obj=cartSession.get("items"); List getlist=(List)obj; if(cartSession.get("items")==null){ cartSession.put("items", add()); }else{ obj=cartSession.get("items"); getlist=(List)obj; boolean find=false; for(int i=0;i<getlist.size();i++){ List listfind=(List)getlist.get(i); if(listfind.get(0).equals(id)){ find=true; int b=Integer.valueOf(listfind.get(5).toString())+count;//修改数量 listfind.remove(5); listfind.add(5, b); break; } } //没有找到 if(!find){ cartSession.get("items"); getlist.add(add1()); } cartSession.put("items",getlist); //System.out.println(cartSession.get("items")); } } public String execute(){ items(); return SUCCESS; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getPrice1() { return price1; } public void setPrice1(String price1) { this.price1 = price1; } public String getBei() { return bei; } public void setBei(String bei) { this.bei = bei; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getYou() { return you; } public void setYou(String you) { this.you = you; } public int getFen() { return fen; } public void setFen(int fen) { this.fen = fen; } @Override public void setSession(Map cartSession) { this.cartSession=cartSession; } public List getList() { return list; } public void setList(List list) { this.list = list; } public List getC() { return c; } public void setC(List c) { this.c = c; }} <s:iterator value= "#request.list " var= "f "> <s:iterator value= "#f " var= "s "> <div> <s:property value= "#s.id "/> </div> <div> <s:property value= "#s.name "/> </div> </s:iterator> </s:iterator> 代码是这样写的。 不行啊<s:iterator value="#session.items" var="f" > <s:iterator value="#f" var="s"> <s:property value="#s.id"/> <s:property value="#s.name"/> </s:iterator> </s:iterator> 用el看看撒,el這樣的方式是可以出來的吧 也可以用js操作啊。。 把数据弄成json格式 确定有items写到session里了?? 确定,我用debug看了,有的,用<s:iterator value="#session.items"><s:property /></s:iterator>能循环初[a,b,c] 跟[a1,b1,c1]的数据,淡我想要能单独操作a,b,c纠结啊 别提了,表示很蛋疼,本想装个struts2帮你调调,可总提示我Attribute var invalid for tag iterator 错误…………………………崩溃ing <s:iterator value= "#request.list " var= "f "> <s:iterator value= "#f " var= "s "> <div> <s:property value= "#s.id "/> </div> <div> <s:property value= "#s.name "/> </div> </s:iterator> </s:iterator> <s:iterator value= "#request.list " var= "f "> <s:iterator > ------------ <s:property /> ------------- </s:iterator> </s:iterator>这样子能挣吧他分开,但也就分开,还是不能操纵分出来的数据,╮(╯▽╰)╭ 讨论hibernate 和Struts2的通用性 求助:趋势图问题 <bean:write name="element"/>得出的结果类似数组:<b>世界</b>,<b>你好</b>,101 请问如何把汉字转换成RFC1738编码? 紧急求助各位 网页的定时问? 请问useBean的scope属性设置成page和设置成request有什么区别?详细点! 急救!怎样实现在线人数统计!!! 请问一个项目开了多个线程,我怎么能操作其中的某一个线程呢 浏览器里发一次请求,但tomcat收到两个请求,求助! 关于省市区三级联动取值问题 求助,doctype对js脚本的有影响
<s:iterator value="#request.list" id="l">//不同版本的struts可用var替代id,这里的l就代表了集合里的对象(可以是BEAN\MAP\LIST\数组等集合类型或对象)
<div><s:property value="#l.id"/></div>
<div><s:property value="#l.name"/></div>
</s:iterator>
<s:iterator value="#request.list" var="f">
<s:iterator value="#f" var="s">
<div><s:property value="#s.id"/></div>
<div><s:property value="#s.name"/></div>
</s:iterator>
</s:iterator>根据楼上改的,刚看了些struts2 还没装环境,不知道对不对,你可以试试
但感觉既然是二维的List就应该用嵌套
package action;import com.opensymphony.xwork2.ActionSupport;
import java.util.*;import org.apache.struts2.interceptor.SessionAware;import bean.ItemOne;
import bean.setcart;
public class cartItems extends ActionSupport implements SessionAware{
private Map cartSession;
private List list;
private List newlist;
private List c;
private Integer id; //标识 private String price; //单价 private String price1; //优惠价 private String bei; //备注 private int count; //购买数量 private String name; //商品名称
private String you;//优惠
private int fen;//积分
public cartItems(){
}
public List add1(){
newlist=new ArrayList();
Float.valueOf(you);
Float.valueOf(price1);
newlist.add(getId());
newlist.add(getName());
newlist.add(getPrice1());
newlist.add(getYou());
newlist.add(getFen());
newlist.add(getCount());
return newlist;
}
public List add(){
list=new ArrayList();
list.add(add1());
return list;
}
public void items(){
Object obj=cartSession.get("items");
List getlist=(List)obj;
if(cartSession.get("items")==null){
cartSession.put("items", add());
}else{
obj=cartSession.get("items");
getlist=(List)obj;
boolean find=false;
for(int i=0;i<getlist.size();i++){
List listfind=(List)getlist.get(i);
if(listfind.get(0).equals(id)){
find=true;
int b=Integer.valueOf(listfind.get(5).toString())+count;//修改数量
listfind.remove(5);
listfind.add(5, b);
break;
}
}
//没有找到
if(!find){
cartSession.get("items");
getlist.add(add1());
}
cartSession.put("items",getlist);
//System.out.println(cartSession.get("items"));
}
}
public String execute(){
items();
return SUCCESS;
}
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getPrice() {
return price;
} public void setPrice(String price) {
this.price = price;
} public String getPrice1() {
return price1;
} public void setPrice1(String price1) {
this.price1 = price1;
} public String getBei() {
return bei;
} public void setBei(String bei) {
this.bei = bei;
} public int getCount() {
return count;
} public void setCount(int count) {
this.count = count;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getYou() {
return you;
} public void setYou(String you) {
this.you = you;
} public int getFen() {
return fen;
} public void setFen(int fen) {
this.fen = fen;
} @Override
public void setSession(Map cartSession) {
this.cartSession=cartSession;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public List getC() {
return c;
}
public void setC(List c) {
this.c = c;
}
}
<s:iterator value= "#f " var= "s ">
<div> <s:property value= "#s.id "/> </div>
<div> <s:property value= "#s.name "/> </div>
</s:iterator>
</s:iterator>
代码是这样写的。
<s:iterator value="#session.items" var="f" >
<s:iterator value="#f" var="s">
<s:property value="#s.id"/>
<s:property value="#s.name"/>
</s:iterator>
</s:iterator>
错误…………………………
崩溃ing
<s:iterator value= "#f " var= "s ">
<div> <s:property value= "#s.id "/> </div>
<div> <s:property value= "#s.name "/> </div>
</s:iterator>
</s:iterator>
<s:iterator >
------------ <s:property /> -------------
</s:iterator>
</s:iterator>
这样子能挣吧他分开,但也就分开,还是不能操纵分出来的数据,╮(╯▽╰)╭