关于struts2动态数据验证回显问题

Struts2表单验证与动态数据回显
本文介绍了Struts2框架中两种表单验证方法:重写validate方法和使用validate框架,并探讨了如何处理动态数据的获取与表单回显问题,包括利用Ajax实现动态数据加载。



     struts2对于server端的验证,可以采用两种, 1:重写validate方法, 2:用validate框架进行,先说一下validate方法, 以下图为例.

 

图中婚姻状况及性别要求动态生成,即从数据库中取得数据,当然这个有点多此一举,就拿它当个例子吧.首先来说如果验证失败的话要求除密码以外其它的保持用户上次的内空不变.

 

如果采用validate的编码方式,要在validateSave的方法中取到sex的数据集,marriage的数据集,当然也可以写到prepareSave的方法中,这样在每次调用save方法之前就会提前取出数据,但是不是每次验证都不成功,而prepareSave方法无论成功与否都会执行,所以还是在失败的时候去取返回数据的集合比较可取一些,即在validateSave方法中先验证合法性如果不合法则取页面需要的集合返回。(代码略)

 

   看一下前台的标签怎么写

<s:select id="marrage" name="user.marrage" list="%{marrageList}" listKey="id" listValue="value" value="%{user.marrage}"/>

 这里要值得注意的是要加上value这个属性完全是为了回显做的,struts2的自动赋值不大敢用,有时就是加不上去,如果只是用html的标签那就更得加上为佳.

 

如果要用validate框架,那么动态的数据取值问题要放到prepareSave中做了,但也可以用Ajax的方式去取值,页面最好用html的标签,回显的时候把用户上次选的放值在ajax中选中就完了,当然我指的是那两个动态的数据.

                                var xmlhttp;
		function push(params, callback){
		 
		    if(!params ) var params = {};
			if( params.method == undefined ) params.method = "GET";
			if( params.url == undefined ) params.url = "";
			
		    if(window.ActiveXObject){ 
		        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");   
		    }else if(window.XMLHttpRequest){  
		        xmlhttp = new XMLHttpRequest();   
		    } 
		    try{   
		        xmlhttp.onreadystatechange = callback;  
		        xmlhttp.open(params.method, params.url, false);   
		        xmlhttp.send(); 
		           
		    }catch(exception){ 
		    
		        alert("您要访问的资源不存在!");   
		    }
		}

 

 

                 function pushValue(type,instance,selected){
	  var theUrl ="ajax/onResource.action?type="+type;
	  push({url:theUrl,method:"GET"},function(){
		      if(xmlhttp.readyState == 4)
	                     { 
			         var res= eval(xmlhttp.responseText);
				     var typed = document.getElementById(instance);
				     for(var i=0;i<res.length;i++)
				     {
				       var typename =res[i].typeName;
				       var typevalue=res[i].typeValue;
				       var optionItem;
	                                                      if(selected!=""&&selected==typevalue)
	                                                      {
				        optionItem =new Option(typename,typevalue,'',true);
				        
				       }else
				       {
				        optionItem =new Option(typename,typevalue);
				       }
				       typed.options.add(optionItem);
				     }
			         }
		             });
	 }

 

 

window.onload = function(){
		  pushValue("marriage","marriage","${user.marriage}");}

 

 这样就可以用Ajax进行取值及回显了,还有没有别的好办法暂不知,如果有,请告知下谢谢。

 

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值