Struts2框架中 动态页面的值在验证不通过的情况下,如何保存的有关问题,望各位高人指教
Struts2框架中 动态页面的值在验证不通过的情况下,怎么保存的问题,望各位高人指教~
最近在做一个Struts2+ibatis+mysql的项目,项目有一个页面要求,明细部分的是可以动态添加或删除的,比如:页面在初始化时,只有一条数据,当点击页面上的增加一行按钮,通过JS实现了 新增加一行,然后编辑这行的数据,点击提交按钮后,后台对新增行的数据进行验证,验证不通过后,会在原页面显示错误信息,并要求新增行的数据被保留,我的验证方法是写在Action中的,没有用验证框架。希望高人能给于指教,最好能够贴出相应的代码,比较急,在线等~~!!
------解决方案--------------------
没有的话怎么可能,IFRAME也满足不了你的要求.
AJAX 不是那么难的.用JS新增一行会了吧.那就从提交按钮开始,button ,==> onclick=func() 定义一个JS 函数 func会了吧.
然后就传值 到ACTION.这个action要返回 NONE 就是不跳转页面.
最近在做一个Struts2+ibatis+mysql的项目,项目有一个页面要求,明细部分的是可以动态添加或删除的,比如:页面在初始化时,只有一条数据,当点击页面上的增加一行按钮,通过JS实现了 新增加一行,然后编辑这行的数据,点击提交按钮后,后台对新增行的数据进行验证,验证不通过后,会在原页面显示错误信息,并要求新增行的数据被保留,我的验证方法是写在Action中的,没有用验证框架。希望高人能给于指教,最好能够贴出相应的代码,比较急,在线等~~!!
------解决方案--------------------
没有的话怎么可能,IFRAME也满足不了你的要求.
AJAX 不是那么难的.用JS新增一行会了吧.那就从提交按钮开始,button ,==> onclick=func() 定义一个JS 函数 func会了吧.
然后就传值 到ACTION.这个action要返回 NONE 就是不跳转页面.
- JScript code
function xhr() { var xhr; try { if (window.ActiveXObject) { for ( var i = 8; i; i--) { try { if (i == 2) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { xhr = new ActiveXObject("Msxml2.XMLHTTP." + i + ".0"); // xhr.setRequestHeader("Content-Type","text/xml"); xhr.setRequestHeader("charset", "UTF-8"); } break; } catch (e) { xhr = false; } } } else if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); if (xhr.overrideMimeType) { xhr.overrideMimeType('text/xml'); } } } catch (e) { xhr = false; alert("您的浏览器不支持ajax"); } return xhr; } function Ajax(callBackFunc, method, url, async, data, eFunc) { var req = xhr(); if (req) { req.onreadystatechange = function() { if (req.readyState == 4 && req.status == 200) { if (callBackFunc) { callBackFunc(req); } } else { if (req.readyState == 4 && req.readyState > 200) { if (eFunc) { eFunc(req); } } } if (req.readyState == 4) { req.onreadystatechange = {}; } }; method = method.toUpperCase(); req.open(method, url, async); if (method == "POST") { req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } if (data) { req.send(data); } else { req.send(null); } } }