2

我已经学会了如何使用 Spring MVC 3,但我对它的背景非常感兴趣。对我来说最有趣的事情之一是表单处理。

到目前为止,我知道调度程序处理的每个 http 请求都映射到适当的控制器。控件做一些后台工作,然后选择要加载的 JSPX 页面,并将属性发送给它。JSPX 由容器(Tomcat 等)编译到另一个 servlet。比网页在 http 响应中发回。

在大多数情况下,这对我来说似乎没问题。但是,表单处理是不同的。在<form:form> 标签中,您定义了映射到它的对象和属性。但是在上面提到的逻辑中,它实际上永远不会被调用。我的意思是,用户请求带有表单的页面。所以控制器渲染它。比用户发送表单,调度程序调用一些保存方法。但是,如果传入的属性是在未调用的 JSPX 中描述的,那么 Spring 如何知道如何映射传入的属性?

此外,如果您知道 Spring MVC 背景上的任何好的(最好是 Web)资源,请发布链接。谢谢你。

4

2 回答 2

4

好吧,所有 Spring 参考之王在

http://static.springsource.org/spring/docs/current/

MVC 有很长的部分,以及如何使用 Spring 标签构建页面。

问题是,告诉你阅读它就像告诉你从消防水龙带里喝水一样。随着我越来越擅长使用 Spring,我了解到知道如何在 Spring 中做好一件事意味着知道如何在 Spring 中做好其他事情。

这一切都值得学习,Spring 的真正优势会随着您对它的深入了解而显露出来。

谷歌搜索“example spring form”会找到有用的例子,比如http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/ 但是这种学习方法的问题是 Spring是不断发展的。我发现从网络上的随机示例中学习很复杂,因为有些人在 Spring 3 可用之前发布了他们的示例,或者在注释可用之前等等。

对我来说,随着我继续学习 Spring,没有一个参考。它是主要的参考资料,网上有很多例子,在这里阅读了很多问题,并发布了一些。

于 2012-06-14T21:41:48.487 回答
1

从您描述问题的方式来看,我想您知道 HTTP 的概念。但是,您似乎对区分 HTTP 参数和请求属性及其生命周期的了解不够深入。

当用户请求页面时,会调用 a 中的一个方法Controller,并将返回View要显示的 以及从 设置的请求属性Controller。然后以HTML格式呈现视图。在 thisHTML中,有一个呈现的表单。此表单具有可能指向或可能不指向同一 URL 的操作。当请求被发回时,URL 再次映射到控制器的方法(可能是具有不同方法的同一控制器或完全不同的控制器)。与第二个请求一起,表单中的那些参数将被发送到相应的控制器方法,并且与第一个请求相同的循环再次发生。

于 2012-06-15T03:18:59.007 回答