您的位置:首页 > 其它

Sprin 4000 g MVC

2016-12-22 19:03 375 查看


Spring MVC 框架

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Spring 的 Web MVC 框架是围绕 
DispatcherServlet
 设计的,它把请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的 
Controller
 接口,只有一个方法 
ModelAndView
handleRequest(request, response)
。Spring 提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,那么可以继承 
AbstractFormController
。如果需要把多页输入处理到一个表单,那么可以继承 
AbstractWizardFormController


示例应用程序有助于直观地学习这些特性。银行应用程序允许用户检索他们的帐户信息。在构建银行应用程序的过程中,可以学到如何配置 Spring MVC 框架和实现框架的视图层,视图层包括 JSTL 标记(用于显示输出的数据)和JavaServer Pages 技术。


配置 Spring MVC

要开始构建示例应用程序,请配置 Spring MVC 的 
DispatcherServlet
。请在 web.xml 文件中注册所有配置。清单
1 显示了如何配置
sampleBankingServlet


清单 1. 配置 Spring MVC DispatcherServlet


<servlet>
<servlet-name>sampleBankingServlet</servlet-name>
<servlet-class>
org.springframework.we.servlet.DispatcherServlet
<servlet-class>
<load-on-startup>1<load-on-startup>
<servlet>


DispatcherServlet
 从一个
XML 文件装入 Spring 应用程序上下文,XML 文件的名称是 servlet 的名称后面加上 -servlet 。在这个示例中,
DispatcherServlet
 会从 sampleBankingServlet-servlet.xml 文件装入应用程序上下文。


配置应用程序的 URL

下一步是配置想让 
sampleBankingServlet
 处理的
URL。同样,还是要在 web.xml 中注册所有这些信息。

清单 2. 配置想要处理的 URL


<servlet-mapping>
<servlet-name> sampleBankingServlet<servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>



装入配置文件

下面,装入配置文件。为了做到这点,请为 Servlet 2.3 规范注册 
ContextLoaderListener
 或为
Servlet 2.2 及以下的容器注册
ContextLoaderServlet
。为了保障后向兼容性,请用 
ContextLoaderServlet
。在启动
Web 应用程序时,
ContextLoaderServlet
会装入
Spring 配置文件。清单 3 注册了 
ContextLoaderServlet


清单 3. 注册 ContextLoaderServlet


<servlet>
<servlet-name>context>servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


contextConfigLocation
 参数定义了要装入的
Spring 配置文件,如下面的 servlet 上下文所示。

<context-param>
<param-value>contextConfigLocation</param-value>
<param-value>/WEB-INF/sampleBanking-services.xml</param-value>
</context-param>


sampleBanking-services.xml 文件代表示例银行应用程序服务的配置和 bean 配置。如果想装入多个配置文件,可以在 
<param-value>
 标记中用逗号作分隔符。


Spring MVC 示例

示例银行应用程序允许用户根据惟一的 ID 和口令查看帐户信息。虽然 Spring MVC 提供了其他选项,但是我将采用 JSP 技术作为视图页面。这个简单的应用程序包含一个视图页用于用户输入(ID 和口令),另一页显示用户的帐户信息。

我从 
LoginBankController
 开始,它扩展了
Spring MVC 的 
SimpleFormController
SimpleFormContoller
 提供了显示从 
HTTP
GET
 请求接收到的表单的功能,以及处理从 
HTTP
POST
 接收到的相同表单数据的功能。
LoginBankController
 用
AuthenticationService
 和 
AccountServices
 服务进行验证,并执行帐户活动。“ 配置视图属性 ”一节中的 清单
5 描述了如何把
AuthenticationService
 和 
AccountServices
 连接到 
LoginBankController
。 清单
4 显示了 
LoginBankController
 的代码。


配置视图属性

下面,我必须注册在接收到 
HTTP
GET
 请求时显示的页面。我在 Spring 配置中用 
formView
 属性注册这个页面,如清单
5 所示。
sucessView
 属性代表表单数据提交而且 
doSubmitAction()
 方法中的逻辑成功执行之后显示的页面。
formView
 和 
sucessView
 属性都代表被定义的视图的逻辑名称,逻辑名称映射到实际的视图页面。

清单 5. 注册 LoginBankController


<bean id="loginBankController"
class="springexample.controller.LoginBankController">
<property name="sessionForm"><value>true</value></property>
<property name="commandName"><value>loginCommand</value></property>
<property name="commandClass">
<value>springexample.commands.LoginCommand</value>
</property>
<property name="authenticationService">
<ref bean="authenticationService" />
</property>
<property name="accountServices">
<ref bean="accountServices" />
</property>
<property name="formView">
<value>login</value>
</property>
<property name="successView">
<value>accountdetail</value>
</property>
</bean>


commandClass
 和 
commandName
 标记决定将在视图页面中活动的
bean。例如,可以通过 login.jsp 页面访问 
loginCommand
 bean,这个页面是应用程序的登录页面。一旦用户提交了登录页面,应用程序就可以从 
LoginBankController
 的 
onSubmit()
 方法中的命令对象检索出表单数据。


视图解析器

Spring MVC 的 视图解析器 把每个逻辑名称解析成实际的资源,即包含帐户信息的 JSP 文件。我用的是 Spring 的
InternalResourceViewResolver
,如 清单
6 所示。

因为我在 JSP 页面中使用了 JSTL 标记,所以用户的登录名称解析成资源 /jsp/login.jsp,而 
viewClass
 成为 
JstlView


验证和帐户服务

就像前面提到的,
LoginBankController
 内部连接了
Spring 的 
AccountServices
 和
AuthenticationService
AuthenticationService
 类处理银行应用程序的验证。
AccountServices
 类处理典型的银行服务,例如查找交易和电汇。清单
7 显示了银行应用程序的验证和帐户服务的配置。

清单 7. 配置验证和帐户服务


<beans>
<bean id="accountServices"
class="springexample.services.AccountServices">
</bean>
<bean id="authenticationService"
class="springexample.services.AuthenticationService">
</bean>
</beans>

转载地址:http://www.ibm.com/developerworks/cn/java/wa-spring3/index.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: