@RequestParam
校正请求参数名
指若请求 URL 所携带请求参数名不相同时,则需在处理方法参数前,添加一个注解@RequestParam(“请求参数名”),指定请求 URL 所携带参数的名称。该注解是对处理器方法参数进行修饰的。
value 属性指定请求参数的名称。
value属性
请求中的参数名
required属性
true:表示请求中必须有该参数(默认)
false:表示请求中可以没有该参数
对象参数接受
将处理器方法的参数定义为一个对象,只要保证请求参数名与这个对象的属性同名即可。
处理器方法的返回值
使用@Controller注解的处理器的处理器方法,返回值常用的有四种类型:
1)ModelAndView
需要跳转到其它资源,且又要在跳转的资源间传递数据,此时处理器方法返ModelAndView 比较好。
2)String
处理器方法返回的字符串可以指定逻辑视图名,通过视图解析器解析可以将其转换为物理视图地址。
这个字符串可以与视图解析器中的 prefix、suffix 相结合,即可形成要访问的 URI。
3)void
对于处理器方法返回 void 的应用场景,AJAX 响应。若处理器对请求处理后,无需跳转到其它任何资源,此时可以让处理器方法返回 void。
4)返回自定义类型的对象
处理器方法也可以返回 Object 对象。这个 Object 可以是 Integer,String,自定义对象, Map,List 等。但返回的对象不是作为逻辑视图出现的,而是作为直接在页面显示的数据出现的。
返回对象,需要使用@ResponseBody 注解,将转换后的 JSON 数据放入到响应体中。
<mvc:annotation-driven/>
将 Object 数据转化为 JSON 数据,需要由消息转换器 HttpMessageConverter 完成。
返回自定义类型对象
返回List集合
返回字符串对象
若要返回非中文字符串,将前面返回数值型数据的返回值直接修改为字符串即可。但若 返回的字符串中带有中文字符,则接收方页面将会出现乱码。此时需要使用 @RequestMapping 的 produces 属性指定字符集。
produces,产品,结果,即该属性用于设置输出结果类型。
@RequestMapping(
value = "",
produces = "text/plain;charset=utf-8"
)
<url-pattern/>
*.do
/
保持<url-pattern/>的值为 *.do,扩展名方式,图片会正常显示。
将<url-pattern/>的值修改为 / ,则图片将无法显示。
静态资源访问
<url-pattern/>的值并不是说写为/后,静态资源就无法访问了。经过一些配置后,该问题也是可以解决的。
1-使用<mvc:default-servlet-handler/>
2-使用<mvc:resources/>
<mvc:resources location="/images/" mapping="/images/**"/>
location表示静态资源所在目录。当然,目录不要使用/WEB-INF/及其子目录。mapping 表示对该资源的请求( 以/images/ 开 始 的 请 求 , 如/image/beauty.jpg ,/images/car.png 等)。注意,后面是两个星号**。
3-使用<mvc:annotation-driven />
SSM整合
配置web.xml
注册 ContextLoaderListener 监听器
注册字符集过滤器
配置中央调度器
jdbc配置文件
driven
url
user
password
spring配置文件 -- applicationContext.xml
组件扫描器
<context:component-scan base-package=""/>
引入属性配置文件
<context:property-placeholder location="classpath:"/>
数据库连接池
<bean class="**.*DataSource"/>
SqlSessionFactoryBean
<bean class="org.mybatis.spring.SqlSessionFactoryBean"/>
动态代理对象
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"/>
springMVC配置文件——springMVC.xml
组件扫描器
视图解析器
注册注解驱动
<mvc:annotation-driven/>
MyBatis.xml
配置别名
指定sql映射文件
<mappers>
<package name=""/>
</mappers>
name 指定dao接口的包名
<package>使用条件
sql映射文件名和Dao接口名要一样
sql映射文件和Dao接口在同一目录
请求和重定向和转发
请求转发
处理器方法返回 ModelAndView 时,需在 setViewName()指定的视图前添加 forward:,且此时的视图不再与视图解析器一同工作,这样可以在配置了解析器时指定不同位置的视图。
视图页面必须写出相对于项目根的路径。forward 操作不需要视图解析器。
处理器方法返回 String,在视图路径前面加入 forward: 视图完整路径。
请求重定向
在处理器方法返回的视图字符串的前面添加 redirect:,则可实现重定向跳转。
异常处理
SpringMVC 框架处理异常的常用方式:使用@ExceptionHandler 注解处理异常。
@ExceptionHandler 注解
使用注解@ExceptionHandler 可以将一个方法指定为异常处理方法。该注解只有一个可选属性 value,为一个Class<?>数组,用于指定该注解的方法所要处理的异常类,即所要匹配的异常。
而被注解的方法,其返回值可以是 ModelAndView、String或 void,方法名随意,方法参数可以是 Exception 及其子类对象、HttpServletRequest、HttpServletResponse 等。系统会自动为这些方法参数赋值。
对于异常处理注解的用法,也可以直接将异常处理方法注解于 Controller 之中。