在strust2框架下,如何从jsp往action中传递list?

注意,不要看反了,不是action传list到JSP,“而是JSP传list到action"

JSP文件的写法:
<s:iterator value="kczyList" id="ml" status="mlstatic">
分数:
<input type="text" class="asArea" id="tmfs<%=j++%>" size="2" name="kczyList[${mlstatic.index}].FS" onkeyup="setfz();" style="width:4em;margin:0 2px;" />
</s:iterator>
点击保存时候的action:
private List kczyList= new ArrayList();
public String zyPy() throws Exception{
if(kczyService.pyzy(zyfs, yhzyb_id,kczyList)){
sign = "updateSuccess"; }
else{
sign = "updateFail";
}
return "pyzyview";
}
public List getKczyList() {
return kczyList;
}
public void setKczyList(List kczyList) {
this.kczyList = kczyList;
}

strust2框架,我想将kczyList传递回action,可是回到action时里面都是空值。我还有哪些地方没写到吗?还是ognl需要其他的配置文件?急求帮助,采纳之后分数还可以增加 。
暂时不接受其他替代方法。
我只要使用OGNL的方法来解决这个问题。传字符串再拆分的方法我已经是实现了

传入kczyList<Map>这种类型能否实现?

在struts2中,从jsp往action中传递list的方法:
使用ajax发送json给后台。
$.ajax({
type:'POST',
url : xxx.action",
data : {"list" : '把list拼成json数据'},
dataType : "json",
success : function(data){
//成功处理
},
error : function(){
//错误代码
}
});
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-03
<input type="text" size="2" name="kczyList[0]" onkeyup="setfz();" />

<input type="text" size="2" name="kczyList[1]" onkeyup="setfz();" />

<input type="text" size="2" name="kczyList[2]" onkeyup="setfz();" />

<input type="text" size="2" name="kczyList[3]" onkeyup="setfz();" />

<input type="text" size="2" name="kczyList[4]" onkeyup="setfz();" />

.........
<input type="text" size="2" name="kczyList[N]" onkeyup="setfz();" />

以此类推, Struts2 会自动将数据填充到 Aciton 中的 kczyList 集合中追问



叠代的方法怎么写……

本回答被网友采纳
第2个回答  2012-12-02
<s:iterator value="kczyList" id="ml" status="mlstatic">
分数:
<input type="text" class="asArea" id="tmfs<%=j++%>" size="2" name="kczyList" onkeyup="setfz();" style="width:4em;margin:0 2px;" />
</s:iterator>
// name值不需要带下标吧,直接写上名字就可以了 name="kczyList"
第3个回答  2012-12-04
jsp往后台传集合数据,不就是定义多个同名的name="kczyList"吗?action中的集合变量自动获取追问

失败了,我只能传第一个值到action的list中,后面的值传不进去……

第4个回答  2012-12-03
哥 你想的又点多了,kczyList 是个LIST 你怎么把LIST 从JSP中传到action追问

网上有实现的方法,只是我看不懂才来问的。

追答

name值相同就OK了,strust2是通过控件的name 获取JSP中的值,

追问

要是真那么简单我会来问吗?我们整个项目组都没人知道……真正简单的问题我也会上网搜索。
name的传递到后台是字符串数组或者字符串,我已经说得很清楚了,我已经实现这种方法了。

追答

我用的是SSH, 推荐答案哪里给出了答案 我在name 哪里的名字就是kczyList 没有[1] 中括号

追问

为什么我只能传进去第一个值……
用叠代,kczyList里只有一个值。写成kczyList[]也是
初始化是这样写的吗:private List kczyList= new ArrayList();

追答

不用初始化 我把JAVA 和JSP 发给你吧 看你下与你的有什么不同

追问

youxiang:2365435647@qq.com谢谢了

相似回答