Spring In Action学习笔记-Spring MVC

10月 8, 2014 |

1、设置spring MVC
在web.xml中声明DispatcherServlet,servlet-name很重要,因为servlet-name是默认的配置xml的名称[xxx-servlet.xml]。

<mvc:resources mapping="/resources/**" location="/resources/"/> 将对url路径resources的静态资源请求映射到本地文件路径/resources。

2、配置注解驱动的spring MVC
<mvc:annotation-driven/> 启用注解驱动。(比如参数绑定,参数校验等)
<context:component-scan base-package="com.habuma.spitter.mvc"/>自动发现@Controller注解的类并将其注册为控制器

默认的HandlerMapping是BeanNameUrlHandlerMapping 和 DefaultAnnotationHandlerMapping
DefaultAnnotationHandlerMapping将请求映射到@RequestMapping注解的方法上

3、ViewResolver

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix"??? value="/WEB-INF/views/"/>
<property name="suffix"???? value=".jsp"/>
</bean>

InternalResourceViewResolver常用的ViewResolver,逻辑视图名加上前缀和后缀。默认生成的View是InternalResourceView,不支持jstl标签,换成JstlView会暴露一些jstl标签需要的请求属性,所以能支持。顺便说一下,DispatcherServlet会将Controller返回的model放入request中传入view中。所以说可以在view中通过request.getParameter来获取。

4、拆分成多个上下文配置文件
ContextLoaderListener 和context-param的contextConfigLocation

5、处理请求参数:
@RequestParam,请求参数会默认绑定到方法同名的形参上。

封装数据时Model和Map差不多,Model唯一的优势是调用setAttribute时它能自动产生Key。

<sf:form>标签绑定输入域的值到处理方法的形参中, form的modelAttribute属性对应封装的对象,表单元素的path属性对应对象的属性。

返回一个字符串表示逻辑路径,返回前缀是redirect的字符串表示重定向的路径。

6、处理PATH变量
@PathVariable

7、验证输入
通过@Valid, 验证结果存入BindingResult参数,BindingResult.hasErrors()表示验证失败。
显示错误信息:
<sf:errors>

8、文件上传
<sf:form method="POST" enctype="multipart/form-data">
在controller中使用MultipartFile对象接收上传的文件。
注册multipartResolver, bean ID强制要求这个值
<bean id="multipartResolver"class=
"org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:maxUploadSize="500000"/>

Posted in: spring practise

Comments are closed.