LazyValidatorForm中存在List属性的时候,目前在Struts 1.2.9的配置文件中无法配置List元素的类型,这样带来了两个问题:
1. Struts组装FormBean后,List里面的元素是DynaBean,使用BeanUtils.copyProperties从form复制到业务对象的时候,因为业务对象使用了List<T>这样的list元素,copyProperties就出错了。
2. 如果List的元素还嵌套有其他对象,如OrderItem里面还有一个Product的属性,在页面上使用的input元素,名字为product.id, 可以正常显示,但是表单提交的时候,Struts调用BeanUtils.populate 方法会报错,提示No bean specified。
第一个问题,可以覆盖List元素的set方法解决,遍历提交上来的List<DynaBean>对象,使用BeanUtils.copyProperties将dynaBean复制到对应的业务对象上面,虽然麻烦一点,也可以使用。
第二个问题中,如果对象不在List中,可以在LazyValidatorForm定义的时候声明一下对象的属性,但是List里面我就不知道如何处理了。
对于这两个问题,我查了一些资料,始终没有得到比较好的解决方法。最常用的方法是将List属性换成Array属性,这样就可以在LazyValidatorForm定义的时候声明Array元素的类型。
大家说说看,是否有更好的解决方法?
分享到:
相关推荐
这里,我们为每个表单字段定义了一个动态的属性名,如`items[0].name`和`items[1].description`,这使得Struts在处理POST请求时能够将这些值映射到一个List类型的属性上。假设我们有一个名为Item的类,它有name和...
在Struts中,`LazyValidatorForm`是一个特殊的表单类,主要用于处理验证逻辑,特别是在大型应用中,为了提高性能,它采用懒加载的方式来执行验证规则。 `LazyValidatorForm`是Struts的Validator框架的一部分,该...
在处理业务逻辑时,Action可以对这个列表进行操作,如添加、删除、修改商品信息。处理完业务逻辑后,Action会决定跳转到哪个JSP页面来显示结果,这通常通过返回一个ActionForward来实现。 关于源码层面,我们可以...
为了让错误信息与Action相关联,你可以在Action类中添加一个`FieldError`或`ActionError`,并在处理异常时将属性文件中的错误消息添加进去。这样,错误信息将在渲染错误页面时自动插入到模板中。 6. 使用拦截器: ...
这篇名为“Struts2 使用action属性接收中文参数(post提交)”的博文可能讲述了如何在Struts2框架中正确处理中文POST请求。在处理中文参数时,主要涉及以下几个关键知识点: 1. **字符编码设置**: - 请求编码:...
在Struts框架中,`<s:checkboxlist>`是一个非常实用的标签,用于在HTML表单中创建一组复选框,通常用于用户选择多个选项。本文将深入探讨如何巧妙地处理`checkboxlist`的默认选中值以及实现换行显示。 首先,我们...
Struts2作为一款流行的Java Web框架,提供了丰富的标签库来简化视图层的开发,使得在JSP页面中处理数据变得更加便捷。在这个场景下,我们关注的是如何在Struts2中迭代Map和List对象。这两种数据结构在Web开发中经常...
这篇博客讨论的是如何在Struts2中处理`checkboxlist`的换行问题,这在创建多列或美观的表单布局时非常有用。 `checkboxlist`在Struts2中通常与一个Action类中的属性关联,用于收集用户的多选数据。在HTML中,复选框...
在Struts框架中,文件上传功能是常见的需求之一,尤其是在处理用户提交的表单数据时。然而,文件上传过程中可能会遇到编码问题,导致中文等非ASCII字符出现乱码。本篇文章将详细探讨如何在Struts中处理文件上传并...
实践是最好的老师,不断尝试在项目中使用Struts标签,可以提升开发效率并保证代码质量。 总之,Struts标签库是Struts框架中强大的视图层工具,通过合理利用这些标签,开发者可以更高效地构建Web应用程序,同时,...
该属性指定了是否允许在Struts 2标签中使用表达式语法,默认值为`true`,表示允许使用。 #### struts.devMode 此属性设定了Struts 2应用是否使用开发模式,默认值为`false`。当设置为`true`时,在应用出错时可以...
struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结
在处理复杂数据结构时,Struts框架提供了灵活的数据绑定能力,其中包括在List中嵌套Map的情况。这个主题主要涉及到如何在Struts的ActionForm或者Action类中接收并处理这种复杂的数据结构,以及在JSP页面上进行展示。...
在Struts2中,Action类是处理用户请求的核心组件,它封装了业务逻辑。为Action的属性注入值是Struts2的一个关键特性,使得我们可以方便地从请求参数中获取数据并绑定到Action实例上,以便后续的业务处理。 这个特性...
7. **日志记录**:在处理异常时,记录详细的日志信息是必不可少的。Struts框架集成了Log4j或其他日志框架,可以帮助开发者跟踪和诊断问题。 8. ** strut2框架中的拦截器(Interceptor)**:Struts2引入了拦截器,...
- 在JSP页面中使用标签,如`s:textfield name="username"`绑定Action的username属性。 - 配置Struts2的配置文件(struts.xml或struts.properties),定义Action和结果。 通过以上介绍,我们可以看出Struts2标签库...
在Web开发中,Struts2、Ajax和JSON的结合使用能实现异步数据交互,提高用户体验。本实例展示了如何在Struts2...同时,注意在处理JSON返回值时,确保正确解析和使用数据,避免出现“[object, object]”这样的错误提示。
当在`web.xml`中设置了这些参数,它们将覆盖`struts.xml`和`struts.properties`中的相应配置,因此在实际应用中应谨慎处理。 **MVC架构的角色**: - **模型(Model)**:负责业务逻辑处理,与数据层交互,获取和...
Struts2.0属性转换器(Converters)是框架中一个关键组件,它负责将用户输入的数据转换为Java对象的属性类型,确保数据在表单提交后能够正确地绑定到模型对象上。转换器机制的存在使得开发者可以自定义数据类型转换...
Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂、多变的需求。 Struts2 标签分类 Struts2 标签库可以分为三大类:UI 标签、非 UI 标签和 Ajax 标签。 UI 标签 UI 标签主要用于生成 HTML ...