首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

如何把Action查到的数据转发到JSP再用表单提交给另一个Action

2012-09-17 
怎么把Action查到的数据转发到JSP再用表单提交给另一个Action用一个listUser.action查找数据转发到list.js

怎么把Action查到的数据转发到JSP再用表单提交给另一个Action
用一个listUser.action查找数据转发到list.jsp显示、然后把list.jsp里的数据加个表单提交给DeleteAll.action删除、这时进不去,如果把struts.xml里listUserAction返回后重定向到list.jsp就能进到DeleteAll.action里,但是这样又拿不到数据了,这个应该怎么办?
代码如下

struts.xml:
<struts>
<package name="user" extends="struts-default">
<action name="SaveUser" class="SaveUserAction">
<result name="success" type="redirect">listUser.action</result>
<result name="input">/save.jsp</result>
</action>

<action name="listUser" class="ListUserAction">
<result type="redirect">/list.jsp</result>
</action>

<action name="DeleteUser" class="deleteUserAction">
<result name="success" type="redirect">listUser.action</result>
</action>

<action name="updateP" class="updatePUserAction">
<result>/update.jsp</result>
</action>

<action name="updateUser" class="updateUserAction">
<result name="success" type="redirect">listUser.action</result>
<result name="input">/update.jsp</result>
</action>

<action name="DeleteAll" class="DeleteAllUserAction">
<result name="ab" type="redirect">listUser.action</result>

</action>
</package>
</struts>


list.jsp:
<html>
  <head>
   
  <title>Listpage</title>
   

  </head>
  
  <body>
<s:form action="DeleteAll" method="post">
  <table border="1" width="90%">
  <tr>
  <s:checkbox name="checkAll" id="checkAll" onclick="checkAll()"></s:checkbox>
  <td>序号 
  </td>
 
  <td>姓
  </td>
 
  <td>名
  </td>
 
  <td>年龄
  </td>
 
  <td>删除
  </td>
 
  <td>更新
  </td>
  </tr>
 
<s:iterator value="#request.list" id="us" status="sts">
<tr>
<td><s:checkbox name="checklist" value="false" fieldValue="#us.id"></s:checkbox>
</td>

<td><s:property value="#sts.index+1"/>
</td>

<td><s:property value="#us.firstname"/>
</td> 

<td><s:property value="#us.lastname"/>
</td>

<td><s:property value="#us.age"/>
</td>

<td><s:a href="DeleteUser.action?user.id=%{#us.id}">删除</s:a>
</td>

<td><s:a href="updateP.action?user.id=%{#us.id}">更新</s:a>
</td>
</tr>
</s:iterator>
  </table>
  <input type="submit" value="删除"/>
 </s:form>
  </body>
</html>

deleteAction代码



public class DeleteAllUserAction extends ActionSupport {

private Userservice userservice;

//ArrayList checklist=new ArrayList();
List<Integer> checklist;


public Userservice getUserservice() {
return userservice;
}

public void setUserservice(Userservice userservice) {
this.userservice = userservice;
}

public List<Integer> getChecklist() {
return checklist;
}

public void setChecklist(List<Integer> checklist) {
this.checklist = checklist;
}

public String execute() throws Exception {
//if(checklist!=null){
//for (int j = 0; j <checklist.size(); j++) {
//this.userservice.removeUser(userservice.findUserById(checklist.get(j)));
//}
//}
return "ab";
}
}

listaction代码

public class listUserAction extends ActionSupport {

private User user;
private Userservice userservice;



public User getUser() {
return user;
}



public void setUser(User user) {
this.user = user;
}



public Userservice getUserservice() {
return userservice;
}



public void setUserservice(Userservice userservice) {
this.userservice = userservice;
}



@SuppressWarnings("unchecked")
@Override
public String execute() throws Exception {
Map request=(Map)ActionContext.getContext().get("request");
request.put("list", this.userservice.findAllUser());
return SUCCESS;
}

}

[解决办法]
表单提交的action不对吧。你换成listUserAction看行么。
[解决办法]
首先看DeleteAll.action中的数据接收到了没 要不改为将
<s:form action="DeleteAll" method="post"> 
改为:
<s:form action="DeleteAll.action" method="post">试下
我Q550491172
[解决办法]
将<result name="success" type="redirect">listUser.action</result>
换成<result name="success" type="chain">listUser</result>试试
[解决办法]
用作用域 然后jsp页面用EL 或这OGNL表达式 把参数放到form 或href 链接 带你从作用域中提取的参数。
[解决办法]
redirect貌似只能定向到页面,无法定向到action
[解决办法]
<result type="redirect">/list.jsp</result>
这里不需要重定向,而是转发(默认),转发会共享数据 而重定向不共享数据
显示的话可以用S标签库iterator
例如:
 <table width="60%" border="2">
<tr><td>员工编号</td><td>姓名</td><td>年龄</td><td>工资</td><td>入职时间</td><td>操作</td></tr>
<s:iterator value="employees">

<tr><td><s:property value="id" /></td>
<td><s:property value="name" /></td>
<td><s:property value="age" /></td>
<td><s:property value="salary" /></td>
<td><s:property value="formatDate(time)" /></td>
<td><input type="button" value="删除" onclick="location='/struts2/day01/delete.action?id=${id}'"/></td>
</tr>

</s:iterator>

</table>

祝你成功

热点排行