- 浏览: 866089 次
- 性别:
- 来自: 杭州
最新评论
-
我是你们的爹:
真垃圾
spring MVC之返回JSON数据(Spring3.0 MVC) -
107x:
不错,谢谢!
spring MVC之返回JSON数据(Spring3.0 MVC) -
李君寻:
...
spring MVC之用Handler Interceptor拦截请求 -
tianhandigeng:
讲得非常好
maven3实战之仓库(maven仓库分类) -
dafa1892:
我这样做的时候传中文怎么是乱码那?
spring MVC之处理重定向的传参
文章列表
spring MVC之用注解开发控制器(一)
- 博客分类:
- spring
spring MVC之用注解开发控制器(一)
----------
在传统的Spring MVC开发方法中,必须在Bean配置文件中为每个控制器类配置实例和请求映射。如果Spring MVC可以自动侦测你的控制器类和请求映射,就能减少配置所需要的工作量。此外,让每个控制器类去实现或者扩展特定于框架的接口或者基类,也不够灵活。
Spring2.5支持一种基于注解的控制器开发方法。Spring可以通过@Controller注解自动发现你的控制器类以及@RequestMapping注解中的请求映射,这样就为你免去了在Bean配置文件中配置它们的麻烦。此外,如果使用注解,控制器类和处理 ...
spring MVC之将多个动作分组到一个控制器(二)
----------
接上一篇
将URL映射到处理器方法
默认情况下,MultiActionController利用InternalPathMethodNameResolver按名称将URL映射到处理程序方法上。然而,如果想要给被映射的方法名称添加前缀或者后缀,就必须显式地配置这个解析器。
<bean id="memberController"
class="com.apress.springrecipes.court.web.MemberController"& ...
spring MVC之将多个动作分组到一个控制器(一)
----------
创建多动作控制器
根据"每个动作一个控制器"的方法,给应用程序添加动作意味着必须在应用程序上下文中增加控制器。为了使配置更加简单,你想要将Spring MVC应用程序的控制器数量减到最少。Spring MVC提供的MultiActionController类允许你将多个相关的动作分组到一个控制器中。控制器可以扩展MultiActionController,并包含多个处理程序方法来处理多个动作。在多动作控制器中,可以用下面的形式,定义一个或者多个处理程序方法。
public (Mo ...
spring MVC之用表单控制器处理表单(五)
----------
接上一篇
绑定定制类型的属性
提交表单时,SimpleFormController可以帮助你将表单域的值绑定到命令对象的同名属性上。然而,对于定制类型的属性,SimpleFormController无法对它们进行转换,除非你为它们指定相应的属性编辑器。
例如:
运动类型的选择框只提交选中的运动类型ID。你必须通过属性编辑器将这个ID转换成SportType对象。
我们创建SportTypeEditor类,将运动类型ID转换成SportType对象。这个属性编辑器需要ReservationS ...
spring MVC之用表单控制器处理表单(四)
----------
接上一篇
提供表单引用数据
当要求表单控制器呈现表单视图时,它可能有某些类型的引用数据要提供给表单。
如例:
当请求ReservationFormController显示预订表单时,必须在模型中包含所有的可用运动类型,这样表单才能在HTML选择框中显示它们。为此,你可以覆盖SimpleFormController的referenceData()方法。将要引用数据放在一个Map中,并将它作为方法的返回值。这个Map会被自动添加到模型中,并传递给表单视图。referenceData()方法的默 ...
spring MVC之用表单控制器处理表单(三)
----------
接上一篇
初始化命令对象
你可以为SimpleFormController指定一个命令对象,它会被实例化,用于绑定表单域。但是在某些情况下,你可能需要亲自初始化命令对象。要解决这个问题,你必须亲自初始化该命令对象。为此,可以覆盖SimpleFormController的formBackingObject()方法。这个方法的默认实现只是实例化命令类。当你覆盖该方法时,是不需要命令类的,因为SimpleFormController再也不会为你实例化这个类了。
package com.apr ...
spring MVC之用表单控制器处理表单(二)
----------
接上一篇
应用post/redirect/get设计模式
然而,在表单提交后的成功视图中刷新网页时,刚刚提交的表单会再提交一次。这个问题被称作重复表单提交。为了避免这个问题,可以应用post/redirect/get设计模式,它建议在成功地提交一个表单之后,要重定向到另一个URL,而不是直接返回一个HTML页面。如例:
首先,用ParameterizableViewController定义一个只呈现reservationSuccess视图的控制器,它被映射到reservationSuccess.j ...
spring MVC之用表单控制器处理表单(一)
----------
创建表单控制器
在web应用程序中,经常要处理表单。表单控制器既要为用户显示表单,又要处理表单提交。表单处理可能是件非常复杂且充满变数的任务。如果从头开始构建表单控制器,会牵涉到太多的表单处理细节。
Spring MVC提供的SimpleFormController类定义了基本的表单处理流程。它支持命令对象的概念,并且可以将表单域的值绑定到命令对象的同名属性上。通过扩展SimpleFormController类,控制器就可以继承处理表单的能力。
当HTTP GET请求SimpleFormContr ...
spring MVC之创建带有参数化视图的控制器
----------
在创建控制器时, 你不想将视图名称硬编码在控制器中,而是把它参数化, 以便在Bean配置文件中进行指定。ParameterizableViewController是AbstractController的一个子类,其中定义了viewName属性及其getter和setter方法。对于不需要任何处理逻辑,只为用户呈现视图控制器,可以直接使用这个控制器类,或者扩展这个控制器类来继承viewName属性。
假设有一个非常简单的控制器,其目的只是为了呈现about视图。可以声明一个Parameteriza ...
Spring的Controller
- 博客分类:
- 杂项
Spring的Controller
----------
和Struts一样,Spring的Controller是Singleton的,这意味着每个request过来,系统都会用原有的instance去处理,这样导致了两个结果:我们不用每次创建Controller,减少了对象创建和垃圾收集的时间;由于只有一个Controller的instance,当多个线程调用它的时候,它里面的instance变量不是线程安全的。
spring MVC之构造ModelAndView对象
----------
构造ModelAndView对象
当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。因此,经常需要在控制器中构造ModelAndView对象。ModelAndView类提供了几个重载的构造器和一些方便的方法,让你可以根据自己的喜好来构造ModelAndView对象。这些构造器和方法以类似的方式支持视图名称和视图对象。
当你只有一个模型属性要返回时,可以在构造器中指定该属性来构造ModelAndVie ...
spring MVC之将异常映射到视图
- 博客分类:
- spring
spring MVC之将异常映射到视图
----------
当出现未知的异常时, 应用服务器通常会将这个可恶的异常栈显示给用户。用户与这个栈轨迹毫无干系,他会抱怨你的应用程序对用户不友好。此外,这么做琮有潜在的安全风险,因为可能将内部的方法调用层次结构公开给用户。
在Spring MVC应用程序中,可以在web应用程序上下文中注册一个或者多个解析器Bean,来解析未被捕捉的异常。这些Bean必须实现HandlerExceptionResolver接口,这样DispatcherServlet才能自动侦测它们。Spring MVC提供了一个简单的异常解析器,让你可以将每种异常分类 ...
spring MVC之按名称解析视图(五)
----------
redirect前缀
如果在web应用程序上下文中配置了InternalResourceViewResolver,就可以利用视图名称中的redirect前缀来解析重定向视图。然后,视图名称的其余部分就会被当作是重定向的URL。例如,视图名称redirect:welcome.htm会重定向到这个相对的URL----welcome.htm。你还可以在视图名称中指定绝对的URL。
spring MVC之按名称解析视图(四)
- 博客分类:
- spring
spring MVC之按名称解析视图(四)
----------
用多个解析器解析视图
如果在web应用程序中有许多视图,只选择一种视图解析策略通常是不够的。InternalResourceViewResolver通常可以解析大多数的内部JSP视图,但是还有其他的视图类型必须通过ResourceBundleViewResolver进行解析。在这种情况下,就必须结合两种策略来进行视图解析。
<beans...>
...
<bean class="org.springframework.web.servlet.view.ResourceBund ...
spring MVC之按名称解析视图(三)
- 博客分类:
- spring
spring MVC之按名称解析视图(三)
----------
从Resource Bundle中解析视图
除了XML配置文件之外,还可以在Resource Bundle中声明视图Bean。ResourceBundleViewResolver能classpath根部的Resource Bundle中加载视图Bean。请注意,ResourceBundleViewResolver也可以利用Resource Bundle的特性,从不同Resource Bundle中为不同的区域加载视图Bean。
<bean class="org.springframewor ...