请教大神们关于一个Java方面的问题。如何在action接收一个list集合。用struts和jquery做的
js<script>$(function(){for(vary=0;y<=aqList.length;y++){vara="select";varq=a+y;varmin...
js
<script>
$(function(){
for(var y=0;y<=aqList.length;y++){
var a="select";
var q=a+y;
var min = '<s:property value="min"/>';
var max = '<s:property value="max"/>';
for(var i=min;i<=max;i++){
var html="<option value="+i+">"+i+"</option>";
$("#"+q).append(html);
}
}
});
</script>
jsp页面
<s: form action="">
<s:iterator value="aqList" status="rowstatus">
<select name="select" id="<%=select%>">
</s:iterator>
</s: form>
第一个问题
<select>标签中的值不是aqlist遍历出来的,是通过上面的js得到的。那么<select name="select" id="<%=select%>">中的name应该怎么写?
第二个问题
我想通过点击提交按钮获得aqList这个对象的值和select这个标签中的值
感谢各位给我点思路 展开
<script>
$(function(){
for(var y=0;y<=aqList.length;y++){
var a="select";
var q=a+y;
var min = '<s:property value="min"/>';
var max = '<s:property value="max"/>';
for(var i=min;i<=max;i++){
var html="<option value="+i+">"+i+"</option>";
$("#"+q).append(html);
}
}
});
</script>
jsp页面
<s: form action="">
<s:iterator value="aqList" status="rowstatus">
<select name="select" id="<%=select%>">
</s:iterator>
</s: form>
第一个问题
<select>标签中的值不是aqlist遍历出来的,是通过上面的js得到的。那么<select name="select" id="<%=select%>">中的name应该怎么写?
第二个问题
我想通过点击提交按钮获得aqList这个对象的值和select这个标签中的值
感谢各位给我点思路 展开
2个回答
展开全部
so easy :
首先 如果你是要form提交的话
你这个 <s:iterator > 里的 <select name ="actionProperty[${rowstatus.index}]" id=name ="actionProperty[${rowstatus.index}]">
这个 actionProperty 对应你action中接受 这多个select值的list属性 注意泛型的类型要正确 以免 struts帮你转换格式时报错 当然 也得提供正确的 geter和setter方法 这样 你表单直接提交就好了
如果 你是用ajax的异步来提交表单 , 那么 这里你只要保证 name或者id不重复就好
如 <select name ="select${rowstatus.index}" id="select${rowstatus.index}">
var data = null;
$("select[name^='select']").each(function(key,curr){ // 找到 所有的下拉列表
data['actionProperty['+key+']'] = $(curr).val();
});
然后 这个data你就可以post到后台去了
还有这个 select的id什么的 完全不需要 除非是单个标签 推荐使用 id
当很多标签是一个 组的时候 最好用class 或者这种 name的前一段相同的 然后加个变化的index
你试试吧 哥好久没完jsp了 应该是对的 传map也是这种方法 只是 actionProperty['key'] 这个里面有引号 ,因为前者用数字 是 list集合的下标后面打引号就是 map的key了
你先试试吧 不行 在问哥
== 你这个 aqlist 还要传到后台去的啊?
道理是一样的 你在每输出一个 select的时候 输出一个隐藏的 input 就好
<s:iterator value="aqList" status="rowstatus" var="currVal">//加个var
<input type="hidden" name="aqList[${rowstatus.index}]" value="${currVal}" />
首先 如果你是要form提交的话
你这个 <s:iterator > 里的 <select name ="actionProperty[${rowstatus.index}]" id=name ="actionProperty[${rowstatus.index}]">
这个 actionProperty 对应你action中接受 这多个select值的list属性 注意泛型的类型要正确 以免 struts帮你转换格式时报错 当然 也得提供正确的 geter和setter方法 这样 你表单直接提交就好了
如果 你是用ajax的异步来提交表单 , 那么 这里你只要保证 name或者id不重复就好
如 <select name ="select${rowstatus.index}" id="select${rowstatus.index}">
var data = null;
$("select[name^='select']").each(function(key,curr){ // 找到 所有的下拉列表
data['actionProperty['+key+']'] = $(curr).val();
});
然后 这个data你就可以post到后台去了
还有这个 select的id什么的 完全不需要 除非是单个标签 推荐使用 id
当很多标签是一个 组的时候 最好用class 或者这种 name的前一段相同的 然后加个变化的index
你试试吧 哥好久没完jsp了 应该是对的 传map也是这种方法 只是 actionProperty['key'] 这个里面有引号 ,因为前者用数字 是 list集合的下标后面打引号就是 map的key了
你先试试吧 不行 在问哥
== 你这个 aqlist 还要传到后台去的啊?
道理是一样的 你在每输出一个 select的时候 输出一个隐藏的 input 就好
<s:iterator value="aqList" status="rowstatus" var="currVal">//加个var
<input type="hidden" name="aqList[${rowstatus.index}]" value="${currVal}" />
来自:求助得到的回答
展开全部
你那个JS我实在难看懂,STRUTS的标签不是太明白。
第一个
name应该是你自定义的,就是你JS要得到的对象名字。
第二个
你是想通过form提交给action?还是想触发你的JS然你看到值 ?
第一个
name应该是你自定义的,就是你JS要得到的对象名字。
第二个
你是想通过form提交给action?还是想触发你的JS然你看到值 ?
追问
通过form提交给action,想把这2个对象都提交给action
追答
你定义一下jquery的submit事件,可以先去到值然后submit
比如$(“#formName”).submit(function(){
把你那个sqlist 放到一个隐藏的input中 然后提交
});
form既然是表单提交 是不能提交不是表单内容的,我是这么想的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询