问题描述
一个数据库的表LampInfo(2个主键id ,no) 对应JAVA中的类名是LampInfo, state为其中一个属性在某HTML(含有JS代码)页面中 ,页面显示了所有LampInfo对象现在要在JS代码中更改lampInfo 某对象的属性state 然后传到ACTION中我用的是在对象旁加衔接:<a href="abc.action?state=1"> 现在在abc.action中能得到值1 ,但是该对象的id 、no怎么通过JS传到java的Action里,让Action知道是那个对象衔接能传吗? 如果用按钮提交传值 ,在ACTION里又该怎么写呢? JAVA WEB是SSH2框架,求教高手·····
解决方案
有两种方法提交,第一种是每条数据后面都加上提交按钮,触发的js函数包含参数是包含该条数据的控件id,如span或者tr,然后根据document.getElementById(spanid).innerHTML得到该条数据,然后把数据解析成与数据表相对应的字段,作为params,用Ajax传回后台进行数据更新。第二种就是整个页面只有一个提交按钮,也就是提交整个页面的数据,当然你可以在每条数据最前面加上一个checkbox,提交的时候只提交checkbox选中的数据,接下来与第一种相同。在对控件的id进行赋值时,简单做法就是用数据的pk作为id。另外,要想在点击提交的时候触发js事件,只需在控件属性里加上onclick=“JavaScript:methon();”即可。
解决方案二:
var lampInfo={id:"xxx",no:"bbb",state:1};lampInfo=JSON.stringify(lampInfo);<a href="abc.action?param="+encodeURIComponent(lampInfo)> 后台:JSONObject json = JSONObject.fromObject(request.getParameter("param"));String id=(String)json.get("id");String no=(String)json.get("no");Integer state=(Integer)json.get("state");前台需要引进json2.js后台需要json-lib.jar不过这2个文件都挺常用的,应该有。
解决方案三:
用Ajax框架就可以实现,把主键值传过去,在action里根据主键查出你要使用的那个对象
解决方案四:
这个问题说白了,就要跟控制层服务器端进行一次交互,而又要不刷新,超链接只能通过传参、请求可以提交数据 button也可以发生一个action.do请求 有一个action元素 、或是放在form里 提交由button完成 用AJAX吧
解决方案五:
Ajax 提交 so easy!参数放在url里也行 去玩放在函数里传输也行在aciton里取都是request.getParameter("key")
解决方案六:
<a href="abc.action?state=1&id=值&no=值">
解决方案七:
隐藏 INPUT 提交 后台获取