struts2中往session中传入一个值users是list类型的.如下:
ActionContext.getContext().getSession().put("userbeans", users);我要在JSP页面显示LIST中的每个值,要如何在JSP页面显示呀.
ActionContext.getContext().getSession().put("userbeans", users);我要在JSP页面显示LIST中的每个值,要如何在JSP页面显示呀.
<s:property value="userbeans.idb"/> idb是我类中的一个属性
</s:iterator>
我这样写运行时错误..
要咋写呀,谢谢了.
private List<User> listUser;在页面中可以这样
<s:iterator value = "listUser">
<s:property value="User中都属性"/>
</s:iterator>
你要在显示的jsp里把值显示一下看看从session里取出users试试看看什么结果,如果正常,你再考虑迭代标签如何使用,可能是你迭代标签不会用
我在返回时也是用的这样来写的类型
我在JSP页面<s:iterator value = "userbeans">
<s:property value="User中都属性"/>
</s:iterator>
运行时提示我Attribute name invalid for tag iterator according to TLD
这样的错误
<s:iterator value = "#session.userbeans">
<s:property value="UserBean中都属性"/>
</s:iterator>
<s:iterator name="userbeans">
<s:property value="idb"/> 这地方只写属性名就行了,不要再带对象名了
</s:iterator>
<tr>
<td><input type="checkbox" name="isbns" value="<s:property value='isbn'/>"/></td>
<td><s:property value="isbn"/></td>
<td><s:a href="#" onmouseover="getBookInfo('%{isbn}');return false;"><s:property value="bookName"/></s:a></td>
<td><s:property value="price"/>元</td>
<td>
<a href='<s:url action="Edit"><s:param name="isbn" value="isbn" /></s:url>'>编辑</a>
<a href='<s:url action="Remove"><s:param name="isbn" value="isbn" /></s:url>'>删除
</a>
</td>
</tr>
</s:iterator>
<taglib>
<taglib-uri>/struts-tags</taglib-uri>
<taglib-location>/WEB-INF/lib/struts2-core-2.0.10.jar</taglib-location>
</taglib>
<%@ taglib prefix="s" uri="/struts-tags" %>引入标签库
还需要再填加其它的吗
ArrayList list=(ArrayList)request.getSession().getAttribute("userbeans"); //先得到session中的list
<%
for(int i=0;i<list.size();i++){
A a=(A)list.get(i);//你的list对象
<%=account.getName1()%> //现在输出
<%=account.getName2()%>
<%=account.getName3()%>
.....
}
%>
ArrayList list=(ArrayList)request.getSession().getAttribute("userbeans"); //先得到session中的list
<%
for(int i=0;i <list.size();i++){
A a=(A)list.get(i);//你的list对象
<%=a.getName1()%> //现在输出
<%=a.getName2()%>
<%=a.getName3()%>
.....
}
%>
那么你在页面
直接写
<s:iterator value="你的list" status="stuts">
<s:property value="直接写泛型中的属性"> //如果你的list事隔泛型如果不是
<s:property value="你的list.get(#stuts.getIndex())[0]"/>//显示第一个元素
[...]想显示你的查询语句中的第几个元素
</s:iterator>
<s:iterator value="%{#userlist}" id="listvalue">//iterator List<String>
<s:property value="#listvalue"/>//if listvalue is a string or int or ... just pritn
</iterator>
ServletActionContext.getRequest().getSession().setAttribute("historyDealList", historyDealList);
这是页面的写法
<s:iterator value="${historyDealList}" id="deal">
<tr>
<td height="38" class="table_content">
<div align="center"> ${deal.departName }</div>
</td>
\</s:iterator>
struts2中,iterator不能用name这个属性,所以是会报这个错:Attribute name invalid for tag iterator according to TLD 。
我试了以上的做法,yulu0214同学提供的方法是可行的。给你参考我的代码(我也是参考yulu0214的):
action中会提交一个ActionContext.getContext().getSession().put("rs", list);其中list的类型是:List<User> list,而User包含uid,uname,uvalid三个属性。
JSP中的代码如下。
<s:set name="userSet"value="%{#session.get('rs')}"></s:set>
<s:iterator value="%{#userSet}" id="listValue">
<tr>
<td>
<s:property value="uid"/>
</td>
<td>
<s:property value="uname"/>
</td>
<td>
<s:property value="uvalid"/>
</td>
</tr>
</s:iterator>
<s:iterator id="user" value="#request.userbeans">
<s:property value="#user.name"/>
</s:iterator>
<td class="table-title1" nowrap="nowrap">全选<input type="checkbox" onclick="fSelectAll(this,document.forms[0].id)"></td>
<td class="table-title1" nowrap="nowrap">序号</td>
<td class="table-title1" nowrap="nowrap">用户名</td>
<td class="table-title1" nowrap="nowrap">年龄</td>
<td class="table-title1" nowrap="nowrap">操作</td>
</tr>
<s:iterator value="userList" status="st">
<tr class='t1' >
<td nowrap="nowrap" style="text-align: center;"><input type="checkbox" name="id" value="1"></td>
<td nowrap="nowrap"><s:property value="#st.count"/></td>
<td > <s:property value="uname"/></td>
<td nowrap="nowrap">
<s:url id="updateURL" action="updateUser"></s:url>
<a href="<s:property value="updateURL"/>" > 修改 </a>
<s:url id="deleteURL" action="deleteUser">
<s:param name="user.id" value="id"></s:param>
</s:url>
<a href="<s:property value="deleteURL"/>" >删除</a>
</td>
</tr>
</s:iterator>
ActionContext actionContext = ActionContext.getContext(); Map session = actionContext.getSession(); session.put("user",user);
jsp页面上接收;我用c标签接收的
${user}
在iterator标签中加一个id,这样输出的时候 aa.userbeans属性就行了,试试吧, 我都是这样用的,
拜托了各位
我的Action中试这样写的
package cn.amisoft.server.actions;import java.util.List;
import java.util.Map;import cn.amisoft.manager.service.IService;import com.opensymphony.xwork2.ActionSupport;
import com.zl.pojo.Usertbl;public class QueryClientsStatusAction extends ActionSupport{ private IService service;
private List list;
public String execute() throws Exception {
Map rtMap = service.execute(null);
list = (List) rtMap.get("list");
// Map returnmap=service.execute(null);
// list=(List<Usertbl>)returnmap.get("list");
return SUCCESS;
}
public void setService(IService service) {
this.service = service;
}
public List<Usertbl> getList() {
return list;
}
}我的Service是这样写的
package cn.amisoft.server.service.impl;import java.util.HashMap;
import java.util.List;
import java.util.Map;import cn.amisoft.manager.service.AbstractService;public class QueryClientsStatusSrvImpl extends AbstractService{ public Map execute(Map map) throws Exception {
Map retrunMap=new HashMap();
String user_hql="SELECT username,unit,watchingip,watchingport FROM Usertbl order by id";
List list=(List)dao.findBySQL(user_hql);
retrunMap.put("list", list);
return retrunMap;
}
}我的struts.xml是这样配置的
<action name="queryClients" class="QueryClientsStatusAction">
<result>/server/ClientsResult.jsp</result>
</action>我的applicationContext.xml是这样配置的
<bean id="QueryClientsStatusAction" class="cn.amisoft.server.actions.QueryClientsStatusAction" scope="prototype">
<property name="service" ref="QueryClientsStatusSrv"></property>
</bean>
<bean id="QueryClientsStatusSrv" class="cn.amisoft.server.service.impl.QueryClientsStatusSrvImpl" parent="AbstractService">
</bean>我的结果jsp页面时这样写的
<s:iterator value="list" status="i">
<tr>
<td align='center'><s:property value='#i.index' /> </td>
<td><s:property value="list[#i.index][0]"/> </td>
<td><s:property value='list[#i.index][1]' /> </td>
<td><s:property value='list[#i.index][2]' /> </td>
<td><s:property value='list[#i.index][3]' /> </td>
<td align='center'><br></td>
</tr>
</s:iterator>