JSP里用struts2的<s:iterator>展现数据,带name属性的标签传给action应该是数组,action里怎么取出数组值?

<s:form action="AAA.action">
<s:iterator value="#BBB" id="Value">
<s:hidden name="CCC"></s:hidden>
......
</s:iterator>
</s:form>
hidden标签的值由JS来赋值,因为数据迭代展现后,会出现多项相同name的标签值,传递给action后,怎么把全部name=“CCC”的这一数组的值全部取到?
我在action里ServletActionContext.getRequest().getParameterValues("CCC"),还是只能取到页面里第一个name=“CCC”的值

第1个回答  推荐于2016-05-05
通过ActionContext对象的getParameters()方法,得到请求参数Map,然后通过这个Map来获取请求参数。需要注意的是:当通过parameterMap的键取得参数值时,取得是一个数组对象,即同名参数的值的集合
ActionContext context=ActionContext.getContext();
Map parameterMap=context.getParameters();

String[] cccValueArray=(String[])parameterMap.get("CCC");
//注意是一个数组对象,这个数组就是全部的名为name的标签的值
String cccValue_1= cccValueArray[0];追问

请问是不是如果页面里用迭代展现的数据整体提交,造成多条数据的控件name相同的情况,就只能用这种方法来把相同name的参数值全部取出?

追答

可以用你的那种方法取,通过request.getParameterValues("CCC")能取到,仍然是一个数组类型的,可以试试看

本回答被提问者采纳
第2个回答  2011-09-07
我觉得可以在js函数里面设置一个数组获取name="ccc"的值,然后把数组累加成字符串,用","号隔开,然后传到Action里面去