我想在JSP页面用checkboxlist取值传到action里面,
一直是空指针,控制台显示list是[]
Action代码:
private List<AtmSproduct> list;
private long supid;
private AtmSproductService atmSproductService;
private AtmSproduct a;
private List<AtmSupplier> aslist;public String add(){
System.out.println("list:"+list);
if(list!=null&&list.size()!=0){
for(AtmSproduct a:list){
if(a!=null){
AtmSupplier as = new AtmSupplier();
as.setSupid(supid);
a.setAtmSupplier(as);
atmSproductService.add(a);
}
}
}
return "add";
}
JSP页面代码:<s:select list="aslist" name="list.atmSupplier.supid" label="供应商名称"
listKey="supid" listValue="sname" style="width=130px"></s:select><s:checkboxlist list="aplist" listKey="pid" listValue="pname"
name="list.atmProduct.pid"></s:checkboxlist>一直就是该死的万年空指针,谁知道jsp的页面代码哪边错了怎么解决
一直是空指针,控制台显示list是[]
Action代码:
private List<AtmSproduct> list;
private long supid;
private AtmSproductService atmSproductService;
private AtmSproduct a;
private List<AtmSupplier> aslist;public String add(){
System.out.println("list:"+list);
if(list!=null&&list.size()!=0){
for(AtmSproduct a:list){
if(a!=null){
AtmSupplier as = new AtmSupplier();
as.setSupid(supid);
a.setAtmSupplier(as);
atmSproductService.add(a);
}
}
}
return "add";
}
JSP页面代码:<s:select list="aslist" name="list.atmSupplier.supid" label="供应商名称"
listKey="supid" listValue="sname" style="width=130px"></s:select><s:checkboxlist list="aplist" listKey="pid" listValue="pname"
name="list.atmProduct.pid"></s:checkboxlist>一直就是该死的万年空指针,谁知道jsp的页面代码哪边错了怎么解决
把你的list用js拼接成json或xml格式的字符串,把这个字符串塞到一个隐藏域中,提交到action,
在action中解析一下这个json或xml,万无一失!
如果页面上一次提交N条数据到后台,我就这么处理,从不考虑用Struts的
private List list;
set...
get...
这种方式!
在服务器中运行着,你也会感到很放心,因为解决了该死的万年空指针
进去看了看,后台好像是接收String数组的,但lz要的是泛型List,
lz可以翻开struts2的源码看看,
struts2的set...其实就是:request.setAttribute(String key, Object value);
struts2的get...其实就是:request.getParameter(String param);
struts2在后台接收数组用的是:request.getParameterValues(String param);
其实这都是javaee的根本,离开了这些,struts2只是个神马!!