需求:扩展spring 3 mvc表单绑定功能,使其能绑定多个command对象,且绑定对象规则按照 model.name 格式进行bind。
描述:spring 3 mvc现有表单绑定功能推荐用 form标签,且仅支持一个 command对象直接的绑定,
<form:form commandName="someCommand1">
</form:form>
绑定规则默认约定按照model的属性名进行匹配,现有的功能存在至少2个弊端:1)不支持多个command 对象绑定;2)如果要绑定除了command外的对象或者参数,必须不能重复现有绑定command 对象中的属性名。
解决思路有2个,本人推荐第2个:
1、form表单中input的name还是按照model.name格式,在 controller中form表单提交方法的签名为:method(HttpServerRequest request,……),在方法中遍历request中的参数,手工的bind。实现手工bind可以写个单独的工具类,用BeanWrapper wrapper = new BeanWrapperImpl(obj)来解决,具体的请参照ss3ex 中的工具类。
2、构建一个实现FactoryBean接口的超类,取名为CommandFactoryBean。以分页需求为例,学生信息分页,表单有2个对象,一个是page对象,另一个是学生对象。CommandFactoryBean类中包含2个属性,一是page类,第二个属性就是通过FactoryBean接口方法getObject()得到的绑定的model类(这里为学生类)。前台from表单:
<form:form commandName="commandFactoryBean">
<form:input path="page.pageNo"/>
<form:input path="student.name"/>
</form:form>
后台controller中方法签名就是
method(……,CommandFactoryBean commandFactoryBean)
肯定还有其他的解决办法,看到的请直接留言。
分享到:
相关推荐
《Spring MVC 展示应用深度解析》 Spring MVC 是 Spring 框架的重要组成部分,它为构建基于模型-视图-控制器(MVC)架构的Web应用程序提供了强大的支持。"spring-mvc-showcase.zip" 文件包含了一个名为 "spring-mvc...
《深入解析YCSB-HBase14-Binding 0.17.0》 YCSB(Yahoo! Cloud Serving Benchmark)是一种广泛使用的云数据库基准测试工具,它为各种分布式存储系统提供了标准化的性能评估框架。YCSB-HBase14-Binding 0.17.0是针对...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(Model-View-Controller)架构的应用程序提供了强有力的支持。在"Spring-MVC-model(1)"这个主题中,我们将深入探讨Spring MVC框架中的...
### Spring MVC 应用程序开发知识点详解 #### 标题:Spring-MVC-step-by中文版.pdf 该文档标题明确指出了文档的主要内容是通过逐步引导的方式帮助读者掌握Spring MVC框架的应用开发过程。 #### 描述:“Spring-...
对于验证,Spring MVC提供了BindingResult和Validator接口,用于校验模型数据的正确性。 另外,Spring MVC与Spring框架的其他组件无缝集成,如Spring AOP(面向切面编程)用于实现日志、事务管理等功能,Spring ...
《Spring MVC 入门详解》 Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。在这个入门项目中,我们将深入探讨 Spring MVC 的核心概念、配置以及实际应用。...
**Spring MVC 数据绑定详解** 在Web开发中,Spring MVC框架为我们提供了一种高效的数据绑定机制,使得控制器(Controller)能够方便地将用户提交的表单数据与Java对象进行映射,简化了处理HTTP请求和响应的过程。本...
node-sass-windows-x64-93-binding.node文件下载
《网上书城 Spring-MVC》项目是基于Spring-MVC框架构建的一个典型电子商务平台,它展示了如何使用Spring-MVC来实现高效、灵活的Web应用程序开发。Spring-MVC是Spring框架的一部分,专门用于处理Web层的业务,提供了...
标题中的"win32-x64-51-57-59-64-67-72-79-83-binding.node多版本.zip"揭示了这是一份包含多个版本的`binding.node`模块的压缩包。`binding.node`在IT行业中,特别是Node.js的上下文中,是一个关键的概念,它是Node....
**Spring MVC 框架详解** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。Spring MVC 提供了灵活的处理请求和响应的方式,使得开发者可以更专注于业务...
《JGoodies Binding 2.6:数据绑定与UI交互的高效工具》 JGoodies Binding 是一个开源的Java库,专注于数据绑定和事件处理,它使得Java Swing应用中的模型和视图之间的交互变得更加简单、直观。这个库的版本号为2.6...
3.0.5.RELEASE.jar,org.springframework.asm-3.0.5.RELEASE.jar,org.springframework.aspects-3.0.5.RELEASE.jar,org.springframework.beans-3.0.5.RELEASE.jar,org.springframework.binding-2.3.0.RELEASE.jar...
标题中的"win32-x64-64-binding.node"是一个特定于操作系统的二进制模块,用于Node.js环境。这个文件是Node.js扩展的一部分,它允许开发者利用C++或者其他低级语言编写的库,为JavaScript提供更强大的功能。这里的...
10. **Conversion and Validation**: Spring MVC提供了数据转换和验证功能,如使用`@RequestParam`、`@PathVariable`注解自动转换参数,以及使用`@Valid`和`BindingResult`进行表单验证。 11. **Tiles or Layouts**...
### Beans Binding:经验和技巧 #### 一、简介 **Beans Binding** 是一项强大的技术,它允许开发者轻松地在 Java 应用程序中的不同组件之间建立数据绑定。这项技术基于 JSR 295(Java Specification Request 295)...
**Spring MVC 5.0.3 知识点详解** Spring MVC是Spring框架的一个核心模块,专注于构建Web应用程序。在Spring MVC 5.0.3版本中,它提供了丰富的功能和改进,使得开发者能够更高效地开发RESTful服务、处理HTTP请求、...
linux-x64-48_binding.node 环境未知 临时保存,现在的资源描述真麻烦,想改下积分都要凑满50字,
Spring MVC 是一个基于 Java 的流行框架,用于构建可伸缩且功能丰富的 web 应用程序。这个名为 "spring-mvc-sample" 的项目是 Spring MVC 的一个引导程序示例,旨在帮助开发者快速理解并开始使用 Spring MVC 框架。...