论坛首页 入门讨论版 Struts

struts2页面传值问题

浏览 303 次
该帖已经被评为新手帖
作者 正文
时间:2008-06-01
传值页面:
<s:iterator value="#session.users" status="index">  
                <tr <s:if test="#index.odd">style="background-color:#bbbbbb"</s:if>>  
  
                    <td>  
                        <s:property value="name" />  
                    </td>  
                    <td>  
                        <s:property value="password" />  
                    </td>  
                    <td>  
                        <s:property value="age" />  
                    </td>  
                    <td>  
                    <s:set name="user" value="#index" scope="session"></s:set>  
                        <a href="Register!delete.action">删除</a>  
                    </td>  
                </tr>  
            </s:iterator>  

<s:iterator value="#session.users" status="index">
				<tr <s:if test="#index.odd">style="background-color:#bbbbbb"</s:if>>

					<td>
						<s:property value="name" />
					</td>
					<td>
						<s:property value="password" />
					</td>
					<td>
						<s:property value="age" />
					</td>
					<td>
					<s:set name="user" value="#index" scope="session"></s:set>
						<a href="Register!delete.action">删除</a>
					</td>
				</tr>
			</s:iterator>



Action中的delete方法如下:
public String delete()   
{   
    UserInf user = (UserInf) ActionContext.getContext().getSession().get("user");   
    System.out.println(user.getName());   
    DaoAction dao = new DaoAction();   
    dao.delete(user);   
    return SUCCESS;   
}  

	public String delete()
	{
		UserInf user = (UserInf) ActionContext.getContext().getSession().get("user");
		System.out.println(user.getName());
		DaoAction dao = new DaoAction();
		dao.delete(user);
		return SUCCESS;
	}



有异常发生:
javax.servlet.ServletException: java.lang.ClassCastException: org.apache.struts2.views.jsp.IteratorStatus
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
我以为是因为数组原因错误,所以又改成了如下:
public String delete()   
{   
    UserInf user = (UserInf) ActionContext.getContext().getSession().get("user");   
    System.out.println(user.getName());   
    DaoAction dao = new DaoAction();   
    dao.delete(user);   
    return SUCCESS;   
}  

	public String delete()
	{
		UserInf[] user = (UserInf[]) ActionContext.getContext().getSession().get("user");
		System.out.println(user.getName());
		DaoAction dao = new DaoAction();
		dao.delete(user[0]);
		return SUCCESS;
	}



结果又报另外一错误:

javax.servlet.ServletException: java.lang.ClassCastException: org.apache.struts2.views.jsp.IteratorStatus
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)


我是struts2的初学者,不知道这是什么原因?如何纠正? 希望热心人能帮我解决一下。
   
时间:2008-06-08
经指点:
<s:iterator value="#session.users" status="index">  

改成:
<s:iterator value="#session.users" id="index"> 

问题解决!
   
0 请登录后投票
时间:2008-07-17
<s:iterator value="#session.users" id="index">是循环一个list来生成一个表格
<s:set name="user" value="#index" scope="session"></s:set>
是每次循环的时候都会set一次
那UserInf user = (UserInf) ActionContext.getContext().getSession().get("user"); 岂不是总是只能取到list中的最后一个user对象?怎么解决这个问题呢
   
0 请登录后投票
论坛首页 入门讨论版 Struts

跳转论坛:
JavaEye推荐