`

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

阅读更多



     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进行取值及回显了,还有没有别的好办法暂不知,如果有,请告知下谢谢。

 

  • 大小: 5.3 KB
分享到:
评论

相关推荐

    李顺利Struts2表单验证后回显错误信息 标签使用

    Struts2作为一款流行的Java Web框架,其在处理表单数据和验证方面有着强大的功能。在实际开发中,为了提供良好的用户体验,表单验证失败时通常需要将错误信息回显给用户。李顺利老师通过他的讲解,让我们深入理解了...

    struts2的日期回显

    在Struts2中,日期回显是指在表单提交后,若验证失败或者用户需要重新填写信息时,框架能够将之前用户输入的日期值重新显示在表单上,提升用户体验。这篇博客文章可能详细介绍了如何在Struts2中实现这一功能。 首先...

    struts2登陆验证

    5. **数据验证**:在Action的`login()`方法中,需要对用户输入的数据进行校验。可以使用Struts2的Validator框架,通过定义验证规则文件(如login-validation.xml)来自动执行验证。 6. **会话管理**:如果验证成功...

    留言板留言板struts2留言板struts2

    8. **表单处理**:Struts2提供了强大的表单处理能力,可以自动绑定请求参数到Action的属性,实现数据验证,并将错误信息回显到页面。 9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一...

    struts2 fielderror去掉样式

    当用户输入的数据不符合预定义的验证规则时,Struts2会将这些错误信息绑定到Action类的属性上,并在视图层展示出来,通常以红色高亮显示。 在标题"struts2 fielderror去掉样式"中,问题的核心是如何去除或者自定义...

    struts2总结项目总结

    1. 动态方法调用(Dynamic Method Invocation,DMI):Struts2允许通过URL直接调用Action类的方法,使得路由更加灵活。 2. 框架组件:主要包括Action、Result、Interceptor等核心组件。Action是业务逻辑处理单元,...

    Struts2实现的注册

    Struts2是一个强大的Java web应用程序开发框架,它简化了基于MVC(模型-视图-控制器)设计模式的开发流程。在本项目中,“Struts2实现的注册”指的是使用Struts2框架来构建一个用户注册功能。接下来,我们将深入探讨...

    struts2学习笔记六(第6讲.Struts2的输入校验续一)

    Interceptor是Struts2的核心特性之一,它们按预定义的顺序执行,可以处理各种任务,如日志、权限检查和数据验证等。Struts2的`ValidatorInterceptor`负责执行验证逻辑,它会根据配置文件中的规则对请求参数进行检查...

    struts2入门的经典案例

    - 验证失败时,Struts2会自动回显错误信息到页面,帮助用户理解问题所在。 4. **Ant构建工具** - Ant是一个Java构建工具,用于自动化编译、打包和部署Java项目。 - 在这个案例中,`Using_Tags_Struts2_Ant`、`...

    Struts2框架学习jar包

    Struts2框架是Java Web开发中的一个流行开源框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态、数据驱动的Web应用程序的高效工具。这个"Struts2框架学习jar包"包含了所有必要的组件,使得...

    J2EE企业级项目开发-3期(KC007) 8.2 Struts之数据校验与国际化文档.doc

    总的来说,Struts2在数据校验和国际化方面的实现为开发者提供了强大的工具,使得在构建企业级应用时能轻松应对多语言环境和数据质量控制的问题。通过熟练掌握这些知识点,开发者能够更高效地开发出稳定、健壮且具有...

    struts2简单登录

    本项目"struts2简单登录"是基于Struts2框架实现的一个基础登录系统,它采用DAO(数据访问对象)模式来处理数据持久层操作。 在Struts2中,核心概念包括Action、Result和Interceptor。Action是业务逻辑的载体,它...

    struts2学习总结

    Struts2支持基于注解的表单字段绑定,可以自动将HTTP请求参数映射到Action的属性,反之亦然,方便数据回显。 **5. OGNL(Object-Graph Navigation Language)** OGNL是Struts2中的表达式语言,用于在Action和视图...

    Struts2学习笔记

    5. **强大的表单和验证**:Struts2提供了强大的表单处理和验证功能,可以轻松实现表单数据的封装、校验和回显。 6. **表达式语言(OGNL)**:Struts2使用OGNL(Object-Graph Navigation Language)作为默认的表达式...

    Starting Struts 2 eBook

    6. **表单与验证**:Struts 2提供了强大的表单处理和验证机制,包括基于注解和XML的验证配置,以及如何处理表单提交和回显数据。 7. **国际化与本地化**:书中会介绍如何在Struts 2应用中实现多语言支持,以满足...

    struts2使用手册中例子

    Struts2提供了一套内置的验证框架,可以在Action类中定义验证规则,或者使用XML验证配置。当用户提交的数据不满足规则时,会显示错误信息。 以上是Struts2框架的核心概念和功能。通过对压缩包中的例子进行学习和...

    用struts写的计算器项目

    在开发过程中,我们还需要考虑错误处理和数据验证。Struts提供了一套强大的机制,可以在ActionForm中添加验证规则,或者在struts-config.xml中定义全局验证规则。如果验证失败,Struts会自动将错误信息存储并回显到...

    struts2 简单实现用户登录源码

    - Struts2支持字段级别的验证,可以通过注解或XML配置实现。 - 用户输入的用户名和密码可以进行非空验证、长度限制等,错误信息会自动回显到页面上。 10. **异常处理**: - Struts2提供了一种统一的异常处理机制...

    用struts2实现简单登录

    如果验证失败,Struts2会自动将错误信息回显到表单。 6. **国际化支持**: - Struts2提供了国际化的支持,可以在资源文件(如`login.properties`)中定义错误消息,然后在Action中引用这些消息,使得应用可以支持...

Global site tag (gtag.js) - Google Analytics