问题解释:用过 Spring MVC tags 的朋友都知道,要想将 表单元素的 value 与 相应的 bean 属性对应,需要在 <form:form> 里设置 commandName,spring mvc 会根据这个值在 requestContext 或 sessionContext 里面查找相应的 model,但是这样会是每个 <form:form> 表单只能使用一个 model,这降低了使用的灵活性。
其实导致这一问题的原因是 spring mvc 根据 form tag 中 path 属性查找 bean 及其属性的算法。
在 spring mvc 的 AbstractDataBoundFormElementTag.java (名字真长)中的 getBindStatus 方法中有这么一句:
String pathToUse = (nestedPath != null ? nestedPath + getPath() : getPath());
其中的 nestedPath 默认为 "command.",就是默认的 commandName 加上一个点。如果设置了 commandName,nestedPath 的值就是相应的 commandName 加上一个点。而 path 的指就是相应 tag 中的 path 属性(像 input、select 等 tag 都是继承了这个 tag)。所以如果 nestedPath 不为空的话 pathToUse 就是 commandName.path。之后 spring mvc 就会根据 pathToUse 的值将 tag 的 value 和相应的 bean 的属性进行绑定。知道这一点我想你就知道如何是 spring mvc tag 支持多 model 了。
具体怎么做这里就不说了。懒了,呵呵。
分享到:
相关推荐
Spring MVC 是一个基于Java的...随着你对Spring MVC的深入学习,你可以了解到更多高级特性,如数据验证、国际化、异常处理、Ajax支持、RESTful API设计等。这只是一个起点,Spring MVC的强大功能等待着你去探索和利用。
7. **New tags in JSP tags library**:提供了更多的JSP标签库,简化视图层的开发。 **实战指南PPT内容** 这份PPT很可能涵盖了Spring MVC 3.0的基本概念、配置、控制器、模型绑定、视图解析、拦截器以及如何构建...
首先,Spring MVC的核心概念包括DispatcherServlet、Controller、Model、View和ViewResolver。DispatcherServlet是Spring MVC的前端控制器,它负责接收HTTP请求,并根据配置将请求分发到相应的Controller处理。...
1. **灵活性**:Spring MVC 相比 Struts 更加灵活,支持更多的视图技术和数据访问技术。Struts 的结构较为固定,虽然易于上手,但在特定场景下可能会显得不够灵活。 2. **性能**:Spring MVC 在性能方面优于 ...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。本教程旨在帮助新手快速入门Spring MVC,掌握其基本概念和使用方法。 首先,我们需要理解MVC设计...
尽管在某些技术特性上已落后于新兴的框架,如Spring MVC,但Struts仍然因其稳定性、成熟度和广泛的社区支持,被视为项目开发中的可靠选择。 Struts框架的核心架构包括一系列相互协作的类、Servlet以及JSP标签库。它...
【Struts 框架详解】 Struts 是 Apache 软件基金会的 Jakarta 项目中的一个核心框架...而 Spring MVC 则代表了现代 web 应用开发的趋势,尤其是对于大型、复杂的企业级项目,Spring 框架的整体生态提供了更多的便利。
SpringMVC是Spring框架的一部分,它为构建基于Java的Web应用程序提供了一个模型-视图-控制器(MVC)架构。Eclipse作为流行的Java IDE,为开发者提供了强大的工具来支持SpringMVC的开发。 首先,我们需要确保Eclipse...
在Spring MVC框架中,表单提交是Web应用中常见的用户交互方式。本篇文章将深入探讨一个简单的表单提交实例,帮助开发者理解如何在Spring MVC环境中处理表单数据。 首先,我们来看User模型类,它是表单数据的载体。...
在本教程中,我们将深入探讨如何搭建一个基于Spring框架的Web入门级项目,重点是使用Spring MVC和Spring JDBC实现简单的用户登录功能。Spring是一个广泛使用的Java企业级应用框架,而Spring MVC是它的一个核心模块,...
Check out the [spring][spring tags] tags on [Stack Overflow][]. [Commercial support][] is available too. ## Issue Tracking Report issues via the [Spring Framework JIRA][]. Understand our issue ...
2. **标签库**:Spring MVC 支持 JSTL(JavaServer Pages Standard Tag Library)和其他自定义标签库,如 Tiles 或 Struts Tags。这些标签库可以简化视图层的开发,提供重用和维护性。例如,JSTL 中的 fmt 和 c 标签...
Spring还提供了数据访问、Web、事务管理等多方面的支持,使得开发人员能够更专注于业务逻辑。 Struts1.X,是Apache基金会的一个MVC(Model-View-Controller)框架,主要应用于Web应用程序的开发。在Struts1中,控制...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本入门案例 "springmvc-demo01-start.zip" 中,我们将探索如何...
Struts主要用于MVC(Model-View-Controller)架构,而Spring则是一个全面的企业级应用框架,提供了包括依赖注入、面向切面编程、事务管理在内的多种功能。 Struts框架: 1. **MVC模式**:Struts是一个基于MVC设计...
- 在JSP页面中使用`<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>`来引入Spring MVC的表单标签库。这个步骤非常重要,因为Spring MVC的表单标签库提供了一系列用于创建HTML表单元素的...
总结,`mvcdemo`项目是一个用于演示Spring MVC核心功能的实例,涵盖了Controller、视图渲染、数据绑定、异常处理等多个方面。通过学习和实践这个项目,你可以深入理解Spring MVC的工作原理及其在Web应用开发中的应用...
Struts是MVC(Model-View-Controller)设计模式的一个实现,主要处理Web应用的表示层逻辑。它通过Action类处理用户请求,控制流程,并将数据传递给视图进行展示。在Struts框架中,配置文件(struts-config.xml)定义...
7. **国际化与本地化**:学习如何在Struts中实现多语言支持,使应用程序更具全球化特性。 8. **异常处理**:理解Struts的异常处理机制,如何定义自定义异常和错误页面。 9. **Struts与Spring集成**:如果课程深度...
Struts作为MVC(Model-View-Controller)框架,主要用于处理HTTP请求和控制应用流程,而Spring则是一个全面的后端解决方案,提供依赖注入、事务管理、AOP(面向切面编程)等功能。当这两个框架结合使用时,可以实现...