struts2前台jsp对后台action传递list集合时为什么list是空的
代码如下:action中:publicclassSetActionextendsBaseAction{privateList<User>list;.....getter和...
代码如下:
action中:
public class SetAction extends BaseAction {
private List<User> list;
.....getter 和setter方法
//list显示到jsp页面
public String select(){
UserService userService = new UserServiceImpl();
list = userService .getUserList(); //调用dao中的方法获得的list集合,集合中存放的是User对象
return “select”;
}
//取jsp中的list插入待后台
public String insert(){
system.out.println(list); //这边测试拿到数据的时候就显示null,没拿到数据
return "insert";
}
}
User的类:
public class User{
private String name;
private String id;
private double age;
.......getter和setter方法
}
jsp页面
<form method="post" action="set!insert" onsubmit=""> //此处何以点击按钮可以跳到action中的insert方法,配置文件就不写了
<table>
<s:iterator value="list">
<tr>
<td width="120px"><s:property value="name"/></td>
<td width="180"><input type="text" name="user.id" size="30" value="<s:property value='age'/>" /></td>
</tr>
<tr>
<td width="120px"></td>
<td width="180"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
现在的问题是select方法得到的list可以传到jsp中显示出来,可是jsp中form提交到action中insert方法里时,得不到list集合,得到的是空指针异常,求帮助,如何解决,为什么这样 展开
action中:
public class SetAction extends BaseAction {
private List<User> list;
.....getter 和setter方法
//list显示到jsp页面
public String select(){
UserService userService = new UserServiceImpl();
list = userService .getUserList(); //调用dao中的方法获得的list集合,集合中存放的是User对象
return “select”;
}
//取jsp中的list插入待后台
public String insert(){
system.out.println(list); //这边测试拿到数据的时候就显示null,没拿到数据
return "insert";
}
}
User的类:
public class User{
private String name;
private String id;
private double age;
.......getter和setter方法
}
jsp页面
<form method="post" action="set!insert" onsubmit=""> //此处何以点击按钮可以跳到action中的insert方法,配置文件就不写了
<table>
<s:iterator value="list">
<tr>
<td width="120px"><s:property value="name"/></td>
<td width="180"><input type="text" name="user.id" size="30" value="<s:property value='age'/>" /></td>
</tr>
<tr>
<td width="120px"></td>
<td width="180"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
现在的问题是select方法得到的list可以传到jsp中显示出来,可是jsp中form提交到action中insert方法里时,得不到list集合,得到的是空指针异常,求帮助,如何解决,为什么这样 展开
8个回答
展开全部
两次action的数据无法共享,可以在select方法中将list放到session里面,在insert方法中从session中取list
更多追问追答
追问
dao方法
public List getAUserList(){
Session session = super.getSession();
Query query = session.createQuery(hql);
。。。
追答
public abstract class AbstractAction extends ActionSupport implements SessionAware {
protected Map session;
public void setSession(Map session) {
this.session = session;
}
你那个session是查询的session,我说的是session域,就像request域,但是适用范围比request大,在select里面session.put("list",list);然后在insert里面list = session.get("list");
展开全部
你这个表单里的s标签没有写一个list的域,而是一个iterater,list没有提交给action。加一个<input type="hidden" name="list" id="list" />就可以了。
追问
请问下,这个标签写在哪里呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private List<User> list;
是不是应该改为数组接收
是不是应该改为数组接收
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后台list集合有值么? 有的话 你在后台接收list的变量要设成全局并且get set 在前台用<s:iterator value="" >value属性里填写后台list名字 然后在s:iterator里写<s:property value="">value属性里填写list里对象里的字段名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private List<User> list = new ArrayList<User> 试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
form中input元素的name属性加上list(如list.user.id)试试
追问
用您的方法改后,后台action中insert方法里得到的list有null变为了[],list的长度是0,也就是说,jsp中的list对象没放到list里面,用那位网友的sessoin传到时能传成功,可是老大不建议session传,说开销会大,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询