关于jsp向action的复杂传值解决方案
关于jsp向action的复杂传值
我在jsp中用c:forEach对list进行了遍历,现在我想将复选框checked的那列的id传给action,如果是传单个值的,那直接设置好name,在ation里get就行,但是现在是多个,并且要用复选框控制。
我自己的思路是用jquery获的选中的复选框,在将复选框的value存在list中,再用$.ajax进行交互,但是在action中用request.getParamater是不合适的(因为是string类型),不知道用getList()能否取到。总之就是想将复选框选中的这些行的参数传值到action,如果有别的好方法可以直接传值的或者用json对象传值(看了一下,没怎么看懂),也帮忙给个思路,谢谢了
------解决方案--------------------
json格式都是key-value形式的,你说 list是java.util.List类型?不过request.getParameter得到的均是String类型,想要到的自定义的类型,肯定是需要处理的(拦截器)。
模拟了一下ajax提交,data参数就是提交到后台的参数,格式自己构造。仅供参考
提交到后台,需要将json字符串转为Map对象,即parameter的字符串格式转化为map,然后用get("ids")得到ArrayList类型数据,不过里面还是map对象,还需进一步解析处理。
<c:forEach var="list" items="${requestScope.list}">
<td height="114" bordercolor="#FFFFFF"><input name="checkbox"
type="checkbox" value=${list[1].id} class="checkbox"/></td>
<td bordercolor="#FFFFFF"><span class="STYLE4">
<a href="goods.jsp?goodsid=${list[1].id}">${list[1].goodname}</a></span></td>
<td bordercolor="#FFFFFF"><span class="STYLE4">${list[1].price}</span></td>
</c:forEach>
我在jsp中用c:forEach对list进行了遍历,现在我想将复选框checked的那列的id传给action,如果是传单个值的,那直接设置好name,在ation里get就行,但是现在是多个,并且要用复选框控制。
我自己的思路是用jquery获的选中的复选框,在将复选框的value存在list中,再用$.ajax进行交互,但是在action中用request.getParamater是不合适的(因为是string类型),不知道用getList()能否取到。总之就是想将复选框选中的这些行的参数传值到action,如果有别的好方法可以直接传值的或者用json对象传值(看了一下,没怎么看懂),也帮忙给个思路,谢谢了
------解决方案--------------------
json格式都是key-value形式的,你说 list是java.util.List类型?不过request.getParameter得到的均是String类型,想要到的自定义的类型,肯定是需要处理的(拦截器)。
模拟了一下ajax提交,data参数就是提交到后台的参数,格式自己构造。仅供参考
$.ajax({
url: 'xxx.action',
type: 'post',
data: {
parameter: '{"ids" : [{"id":"1"},{"id":"2"},{"id":"3"}]}' },
dataType: 'text',
success: function(data){
}
});
提交到后台,需要将json字符串转为Map对象,即parameter的字符串格式转化为map,然后用get("ids")得到ArrayList类型数据,不过里面还是map对象,还需进一步解析处理。