怎么把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>
祝你成功