struts taglib iterate的问题!求助

ajoke 2005-04-20 10:42:31
请问在struts的jsp中,利用struts标签如何实现下面的功能?
<%
List a = (List) request.getAttribute("a");
Map b = (Map) request.getAttribute("b");
for(Iterator iter = a.iterator(); iter.hasNext();){
out.println(b.get(iter.next()));
}
%>
...全文
256 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcshcn 2005-04-25
  • 打赏
  • 举报
回复
<%
java.util.List a1 = new java.util.Vector();
a1.add("a");
a1.add("b");
a1.add("c");
java.util.Map b1 = new java.util.HashMap();
b1.put("a","1");
b1.put("b","2");
b1.put("c","3");
pageContext.setAttribute("a",a1);
pageContext.setAttribute("b",b1);
%>

<logic:iterate name="a" id="aa" >
<bean:define id="bb" value="<%=(String)b1.get(aa) %>"/>
<bean:write name="bb"/>
</logic:iterate>
ajoke 2005-04-22
  • 打赏
  • 举报
回复
to vcshcn(黑天的猩猩) 谢谢
能否<%=b.get(aa) %>也用tag替代?

to Net8Java(男将╭ァM'r杜),虽然你说的毫无价值,也谢谢你
Net8Java 2005-04-22
  • 打赏
  • 举报
回复
这样就可以循环答应这个list对象里存在对象的那个你(property="这个对象的什么属性")指定的属性
Net8Java 2005-04-22
  • 打赏
  • 举报
回复
<logic:iterate id="给这个对象新名字(随便自己取名,下面的用)" indexId="某个对象" name="某个属性">
//这个属性一般都是个list或集合什么的
<bean:write name="自己上面取的名字" property="这个对象的什么属性"/><BR>
</logic:iterate><P>
vcshcn 2005-04-22
  • 打赏
  • 举报
回复
<%
java.util.List a = new java.util.Vector();
a.add("a");
a.add("b");
a.add("c");
java.util.Map b = new java.util.HashMap();
b.put("a","1");
b.put("b","2");
b.put("c","3");
pageContext.setAttribute("a",a);
pageContext.setAttribute("b",b);
%>

<bean:define name="b" id="bb"/>
<logic:iterate name="a" id="aa">
<%=b.get(aa) %>
</logic:iterate>
ajoke 2005-04-21
  • 打赏
  • 举报
回复
to zhutouzip(Speak out!-shyboy) 谢谢你的回答
有一个问题没有阐述
我要做的是在iterate中取另外的变量的值(用当前遍历到的值做为key)
我的问题中 a != b.keySet()
所以不能简单的循环b
飞行的兔子 2005-04-21
  • 打赏
  • 举报
回复
在struts中可以如下:
<%
HashMap months = new HashMap();
months.put("Jan.", "January");
months.put("Feb.", "February");
months.put("Mar.", "March");
request.setAttribute("months", months);
%>
<logic:iterate id="element" indexId="ind" name="months">
<bean:write name="ind"/>.
<bean:write name="element" property="key"/>:
<bean:write name="element" property="value"/><BR>
</logic:iterate><P>
你自己修改一下吧!
ajoke 2005-04-21
  • 打赏
  • 举报
回复
up again
ajoke 2005-04-21
  • 打赏
  • 举报
回复
不解
试过无效
ajoke 2005-04-21
  • 打赏
  • 举报
回复
up
swugswug 2005-04-21
  • 打赏
  • 举报
回复
<%
Map b=new HashMap();
b.put("a","swug1");
b.put("b","swug2");
b.put("c","swug3");
b.put("d","swug4");
ArrayList a=new ArrayList();
a.add(0,"a");
a.add(1,"b");
a.add(2,"c");
a.add(3,"d");
Iterator it=a.iterator();
%>

<logic:iterate id="elementA" name="{$it}">
<c:set value="elementA.0" var="val1"/>
<logic:iterate id="elementB" name="{$b}" >
<bean:write name="elementB" property="{$val1}"/>
</logic:iterate>
</logic:iterate>

不知道行不行
ajoke 2005-04-21
  • 打赏
  • 举报
回复
up
ajoke 2005-04-20
  • 打赏
  • 举报
回复
jianghuxing(回头看看原来我一无所有) ,谢谢你的回复
有两个问题
1。你的示例中没有体现对b的调用
2。如果采用<logic:iterate />的做法是否有可行性?
<logic:iterate id="item" name="a" scope="request">
很容易得到a的当前值:<bean:write name="item" />
如何得到对应的b的值?????????
</logic:iterate>
jianghuxing 2005-04-20
  • 打赏
  • 举报
回复
<c:forEach items="${items}" var="item">
<tr bgcolor="#E2E2E2">
<td height="30" align="center" bgcolor="#E2E2E2">
<input type="radio" name="meetingId" value="<c:out value="${item.id}"/>">
</td>
<td align="center" bgcolor="#E2E2E2"><html:link href="/congress/meetingmanage/meetingDetails.do" paramId="itemId" paramName="item" paramProperty="id"><c:out value="${item.meetingName}"/></html:link></td>
<td align="center" bgcolor="#E2E2E2"><c:out value="${item.meetingtype.meetingtypeName}"/></td>
<td align="center" bgcolor="#E2E2E2"><c:out value="${item.periodId.periodName}"/><c:out value="${item.sequence}"/>娆?/td>
</tr>
</c:forEach>

把items改为你的a

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧