请求处理方法执行完成后,最终返回一个ModelAndView对象。对于那些返回String , View或ModeMap等类型的处理方法, Spring MVC也会在内部将它们装配成一个ModelAndView对象,它包含了逻辑名和模型对象的视图。
I18N码:
配置直接转发页面:
此时,可以直接访问转发页面,但是通过请求转发得到的转发页面会报404异常,需要加上:
自定义视图:
重定向:
如果返回的字符串中带forward:或redirect:前缀时,SpringMVC会对他们进行特殊处理:将forward:和redirect:当成指示符,其后的字符事作为URL来处理
WHY使用form标签呢?
可以更快速的开发出表单页面,而且可以更方便的进行表单值的回显
可以通过modelAttribute属性指定绑定的模型属性,若没有指定该属性,则默认从request域对象中读取command的表单bean如果该属性值也不存在,则会发生错误。
对于 _method 不能使用form: hidden标签,因为modelAttribute对应的bean中没有_ method 这个属性
注意:modelAttribute的值与回显对象的key对应
SpringMVC处理静态资源:
1.为什么会有这样的问题:
优雅的REST风格的资源URL不希望带.html或.do等后缀若将DispatcherServlet请求映射配置为/ ,则Spring MVC将捕获WEB容器的所有请求,包括静态资源的请求, SpringMVC 会将他们当成一个普通请求处理,因找不到对应处理器将导致错误。
2.解决:在SpringMVC 的配置文件中配置<mvc :default- servlet-handler/>
default-servlet-handler将在SpringMVC上下文中定义-个DefaultServletHttpRequestHandler,
它会对进入DispatcherServlet的请求进行筛查,如果发现是没有经过映射的请求,就将该请求交由 WEB应用服务器默认的
Servlet处理。如果不是静态资源的请求,才由DispatcherServlet继续处理
-般WEB应用服务器默认的Servlet的名称都是default .
若所使用的WEB服务器的默认Servlet名称不是default,则需要通过default- servlet-name属性显式指定